我似乎找不到在我的指令
中更新我的ng-model的方法我的指令看起来像这样
app.directive('DatepickerChanger', function () {
return {
restrict: 'E',
require: 'ngModel',
scope: {
Model: '=',
startDate: '=',
endDate: '=',
},
templateUrl: function(elem,attrs) {
return '/AngularJS/Directives/msDatepickerTpl.html'
},
link: function (scope, element, attrs, ngModel) {
ngModel = new Date();
}
}
});
我像这样使用它
<DatepickerChanger ng-model="date" required></DatepickerChanger>
其中date是另一个日期对象
如果我在console.log中使用ng-model,我可以看到它改变了它的值,但是从我调用该指令的地方看不到它。任何人都知道我在做什么
答案 0 :(得分:1)
你错了。此ngModel是controller。您的代码应如下所示:
link: function (scope, element, attrs, ngModel) {
ngModel.$setViewValue(new Date());
}
此外,该指令应调用datepickerChanger
并在html中引用为datepicker-changer
修改强>:
例如,您想在更改输入后更新ngModel。一种方法是使用bind
函数捕获输入字段的事件(我无法看到您的模板,但我想这将有一个输入):
link: function (scope, element, attrs, ngModel) {
element.find('input').bind('change', function() {
// Do something with this.value
ngModel.$setViewValue(newDate);
});
}