从自定义指令触发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() } }); 

在这里看到整个代码