我已更新到角1.5,现在想要使用组件而不是指令。我的问题是,在我更改了我的值之后,我的ngModel将不会运行ng-change。我找到的所有解决方案都与我的问题不符。
我有以下组件
<date-picker ng-model="$ctrl.fromDate" ng-change="$ctrl.updateData()">
</date-picker>
我的日期选择器指令看起来像(我减少了代码,因为有很多不相关的东西) 我使用babelify作为我的代码
import template from './datePicker.jade';
import moment from 'moment';
class datePicker {
constructor(
$scope,
$element,
$attrs
) {
console.log(this);
this.$scope = $scope;
this.$element = $element;
this.$attrs = $attrs
this.initialize();
}
initialize() {
this.updateView();
}
changeDate(day) {
this.ngModel = day;
this.updateView();
}
datePicker.$inject = [
'$scope',
'$element',
'$attrs'
];
export default {
controller: datePicker,
bindings: {
ngModel: '=',
},
template: template(),
};
我使用指令方式的解决方案是在link函数中定义一个scope.updateModel函数,该函数设置我的模型的视图值。这是有效的,但它的丑陋,我不想再使用链接功能