2013-04-17 31 views
3

有人可以指出我在這裏可能做錯了什麼嗎?我有一個控制器使用$ http服務從我的服務器上的JSON文件中提取數據,並通過一個屬性傳遞給指令。問題是,即使我只看到4個對象在我的JSON循環中,它給了我325.更多的屬性是我無法訪問的。ng-repeat不準確地拉動數據

我的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> 
+0

嗯,是有可能,你的JSON是回來爲文本?這將解釋您的對象中的項目數量。 – Xesued

+0

看起來確實如此。我該如何改變它,以便將實際的json轉換爲指令而不僅僅是文本? – richbai90

回答

3

從AngularJS文檔:

@或@attr - 局部範圍的屬性綁定到DOM屬性的值。結果總是一個字符串,因爲DOM屬性是字符串。

使用=有助於

=或= ATTR - 建立本地範圍屬性,並經由ATTR屬性的值定義的名稱的父範圍屬性之間的雙向綁定。

你想改變你的<div showcase stuff="{{data}}"></div><div showcase stuff="data"></div>

+0

謝謝,這正是我需要的。我仍然在學習Angular的所有內容,我不得不說這些文檔有時候有點難以理解。 – richbai90

0

更改@=

@表示將插入對象到字符串。