我正在尝试将一组JSON对象传递给我的指令,然后使用ngrepeat重复它们,但是它不起作用,并且不清楚为什么。
我创建了一个jsfiddle,它显示了我遇到的问题。
https://jsfiddle.net/HB7LU/15997/
有人能告诉我我做错了什么吗?我不明白为什么不让我这样做。
var myApp = angular.module('myApp',[]);
myApp.directive('dir', function() {
return {
restrict: 'E',
scope:{
items: '@'
},
replace: true,
template: '<div><h6>descriptions below</h6><div ngrepeat="x in items"><p>{{x.desc}}</p></div></div>',
link :function(scope){
console.log(scope.items);
}
};
});
答案 0 :(得分:1)
首先,您的模板中有拼写错误。其ng-repeat
而非ngrepeat
- 请注意“ - ”。
其次,您已使用@
属性定义了范围。这会导致您传递的数据采用字符串形式而不是原始类型。
这里有两个选择。使用JSON.parse()
将字符串解析为其原始类型,或使用=
属性类型将数据以原始格式传递给作用域。