Javascript Angularjs引导datetimepiker不绑定模型
在MVC项目中使用带有对象属性的AngularJS指令时,我遇到了一个小问题。整体结构是一个.cshtml页面,其中包含对脚本文件的引用,脚本文件包含应用程序、控制器和指令的定义。一切正常,对所有对象和变量的访问都非常好,控制台上没有显示错误 这是我的设置,首先是指令:Javascript Angularjs引导datetimepiker不绑定模型,javascript,html,angularjs,Javascript,Html,Angularjs,在MVC项目中使用带有对象属性的AngularJS指令时,我遇到了一个小问题。整体结构是一个.cshtml页面,其中包含对脚本文件的引用,脚本文件包含应用程序、控制器和指令的定义。一切正常,对所有对象和变量的访问都非常好,控制台上没有显示错误 这是我的设置,首先是指令: var app = angular.module("dataContainer", ['ngMaterial']); app.directive('dateTime', function () { r
var app = angular.module("dataContainer", ['ngMaterial']);
app.directive('dateTime', function () {
return {
template: '<input type="text" id="datetimepicker" class="form-control">',
restrict: 'E',
require: 'ngModel',
scope: {},
link: function (scope, element, attr) {
$('#datetimepicker').datetimepicker({
format: 'DD/MM/YYYY'
});
}
};
});
之后,我插入了html标记,如下所示:
但是,当我在
ng上触发一个操作时,单击保存信息$scope.dateValue
始终是一个空字符串,好像它无法正确绑定到div。我还尝试从指令中删除scope属性,将其更改为true
和false
,但没有任何效果。这是一个可访问性问题(可能与日期选择器有关)?有没有更好的方法将变量绑定到AngularJS中的指令?谢谢大家的帮助 您已经需要ngModel
,您需要使用它。见答案
此外,您不能设置输入id
,因为同一页面中可能有许多输入。相反,查找指令元素中的输入,并调用其上的插件
var-app=angular.module(“app”,[]);
应用程序控制器('controller',函数($scope){
$scope.dateValue=新日期();
$scope.foo='bar';
});
app.directive('dateTime',function(){
返回{
模板:“”,
限制:'E',
要求:'ngModel',
作用域:{},
链接:功能(范围、元素、属性、模型){
const input=element.find('input');
input.datetimepicker({
onChangeDateTime:函数(日期){
作用域$apply(函数(){
ngModel.$setViewValue(日期);
});
}
});
ngModel.$render=function(){
input.val(ngModel.$modelValue);
}
}
};
});代码>
{{dateValue}}
我的答案有什么想法吗?谢谢@MoshFeu提供的解决方案
app.controller("InvoiceDetailController", function ($scope, $http) {
$scope.dateValue = "";
...