Javascript 将ng repeat变量传递到自定义指令
我有一个ng repeat和一个自定义指令,我试图将ng repeat中的“item”变量传递给它:Javascript 将ng repeat变量传递到自定义指令,javascript,angularjs,Javascript,Angularjs,我有一个ng repeat和一个自定义指令,我试图将ng repeat中的“item”变量传递给它: 如果我使用custom data=“item”则在指令中使用customData 等于字符串“item” 如果我使用customData=“{{item}}”则 指令是项对象和 对其中其他对象的引用将丢失 问题是:我如何将项以对象的形式传递给我的指令?在您的范围分配中将“@”更改为“=”,然后它就可以工作了 angular.module('someModule').directive('c
- 如果我使用
则在指令中使用customData 等于字符串“item”custom data=“item”
- 如果我使用
则 指令是customData=“{{item}}”
对象和 对其中其他对象的引用将丢失项
问题是:我如何将
项
以对象的形式传递给我的指令?在您的范围分配中将“@”更改为“=”,然后它就可以工作了
angular.module('someModule').directive('customDirective', function() {
restrict: 'A',
scope: {customData: '='},
link: function(scope) {
console.log(scope.customData);
}
});
实际上,您可以像这样在
ng repeat
中使用自定义过滤器
<li ng-repeat="item in list | objectFilter">
<div custom-directive custom-data="item"></div>
</li>
这样您就可以得到一组新的项目,每个项目现在都格式化为对象
最后,您必须将'@'
更改为'='
,然后它就可以正常工作了。
简单地将
'
更改为'=
'并不能如您所愿工作。将'
更改为'='
是的,解决了:D谢谢
angular.module('someModule').directive('customDirective', function() {
restrict: 'A',
scope: {customData: '='},
link: function(scope) {
console.log(scope.customData);
}
});
<li ng-repeat="item in list | objectFilter">
<div custom-directive custom-data="item"></div>
</li>
'use strict';
filters.filter("objectFilter",function(){
return function(input){
angular.forEach(input,function(key,val){
if(typeof input[val].item == "string"){
input[val].item = JSON.parse(input[val].item);
}
})
return input;
}
});