ng-repeat不能准确地提取数据

时间:2013-04-17 03:07:47

标签: json angularjs angularjs-directive

有人能指出我在这里做错了什么吗?我有一个控制器使用$ http服务从我的服务器上的JSON文件中提取数据,并通过属性将其传递给指令。问题是,即使我只看到我的JSON循环中的4个对象,它给了我325.更多的属性都不可访问。

我的JSON

[{

"name": "Cute Shirt",
"Type": "Shirt",
"Size": "S,M,L,XL",
"Color": "R,G,B",
"SRC": "img/shirt.png"

}
,

{

    "name": "Cute Shirt",
    "Type": "Shirt",
    "Size": "S,M,L,XL",
    "Color": "R,G,B",
    "SRC": "img/shirt.png"

}

,

{

    "name": "Cute Shirt",
    "Type": "Shirt",
    "Size": "S,M,L,XL",
    "Color": "R,G,B",
    "SRC": "img/shirt.png"

}

,

{

    "name": "Cute Shirt",
    "Type": "Shirt",
    "Size": "S,M,L,XL",
    "Color": "R,G,B",
    "SRC": "img/shirt.png"

}

]

我的控制器

"use strict";

function itemControl ($http,$scope) {

$http.get('doc/products.json' ).success(function(prodata){$scope.data = prodata;});


}

我的指示

app.directive("showcase", function() {
 return {
    restrict: "A",
    template: '{{stuff.length}}',
    scope: {
        stuff: "@"
    }
};
}); 

最后是HTML

<div ng-controller="itemControl">

        <div showcase stuff="{{data}}"></div>

</div>

2 个答案:

答案 0 :(得分:3)

来自AngularJS文档:

  

@或@attr - 将本地范围属性绑定到DOM属性的值。结果总是一个字符串,因为DOM属性是字符串。

使用=将有助于

  

= or = attr - 在本地范围属性和通过attr属性的值定义的name的父范围属性之间设置双向绑定。

您需要将<div showcase stuff="{{data}}"></div>更改为<div showcase stuff="data"></div>

答案 1 :(得分:0)

@更改为=

@表示它会将对象插入到字符串中。