2
早上好大家好,AngularJs指令添加屬性,該事件不會被觸發
我有點停留在這個指令,我要的是收到一個JSON字符串從GetProperties中發揮作用,如:
{"class":"someclass","ng-change":"someChange()",ng-click": "someCLick()"}
該指令將創建JSON中的所有屬性(它的工作原理),問題是ng- *根本無法工作....任何想法?
HTML:
<div ng-repeat="field in fields">
<input type="text" ng-model="ngModel[field.fieldName]" ng-switch="text" property="{{formParams.getProperties(field.fieldName)}}" update-attr />
</div>
這是指令:
.directive('updateAttr', function() {
return {
restrict: 'A',
replace: true,
scope:{
test:'&'
},
terminate:true,
link: function (scope, elem, attrs) {
if (angular.isDefined(attrs['property']) || attrs['property'].lenght != 0) {
var json = JSON.parse(attrs['property']);
elem.removeAttr('property');
angular.forEach(json, function (value, key) {
elem.attr(key, value);
});
}
},
};
})
這裏有一個的jsfiddle:http://jsfiddle.net/nyyfmd0e/16/
檢查的for-each 'angular.forEach(JSON,函數(值,鍵){ 的console.log( 「ADD」 +鍵); elem.attr(鍵,值); });' 您將「something1」作爲關鍵字添加了給定值 - 該如何工作? – graphefruit 2014-10-05 09:09:15
我不明白你想要達到什麼,你能否詳細說明一下?目前你的ngModel引用一個空的對象是可取的嗎? – Linial 2014-10-05 10:36:12
@Linial這個腳本是更大的東西的一部分,所以我不得不提取指令並創建一個工作示例^^,如果你看看js小提琴,你可以看到指令正確地創建了新的屬性....但在ng-change中,函數test()不會在指令或控制器中調用.... – Aliceiw 2014-10-05 10:59:12