从自定义指令触发ngChange
我正在尝试获取我的自定义指令来激活ngChange事件,以便原始控制器在指令中更改数据时执行某些操作。
我的指令看起来像这样:
.directive('spInputCheckbox', function() { return { scope: { ngModel: '=', ngChange: '&' }, restrict: 'AE', replace: 'true', template: 'X{{ title }}', link: function(scope, elem, attr){ scope.title = attr.title scope.$watch('ngModel', function(value){ if(value){ scope.model = scope.ngModel } }); scope.change = function(value){ scope.ngModel = scope.model scope.ngChange() } } }; })
这就是我怎么称呼它
这是一个带代码的JsFiddle
由于更改是单击事件,因此您可以使用ng-click
。 可以为ng-click
事件调用范围函数。
$scope.modified = function(){ alert(7); };
解
也许观看模型可以做到你想要实现的目标
scope.$watch('model', function(value){ if(value){ scope.ngModel = scope.model hasChange = true } if(hasChange) { scope.change() } });
在这里看到整个代码