将JSON数组传递给angular指令时,ngrepeat无法正常工作

时间:2015-08-02 03:52:21

标签: angularjs angularjs-directive

我正在尝试将一组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);
        }
    };
});

1 个答案:

答案 0 :(得分:1)

首先,您的模板中有拼写错误。其ng-repeat而非ngrepeat - 请注意“ - ”。

其次,您已使用@属性定义了范围。这会导致您传递的数据采用字符串形式而不是原始类型。

这里有两个选择。使用JSON.parse()将字符串解析为其原始类型,或使用=属性类型将数据以原始格式传递给作用域。

Working Fiddle