我有一个看起来像这样的指令:
var myApp = angular.module('myApp',[])
.directive("test", function() {
return {
template: '<button ng-click="setValue()">Set value</button>',
require: 'ngModel',
link: function(scope, iElement, iAttrs, ngModel) {
scope.setValue = function(){
ngModel.$setViewValue(iAttrs.setTo);
}
}
};
});
问题是,如果我在一个页面中多次使用这个指令,那么setValue
只会在最后一个声明的指令上被调用。显而易见的解决方案是使用隔离范围,scope: {}
但在指令之外无法访问 ngModel。</p>
这是我的代码的 JSFiddle:http: //jsfiddle.net/kMybm/3/