次のようなディレクティブがあります。
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/