2015-02-24 90 views
0

我有ng-repeat項目列表,我需要顯示「狀態」文本旁邊的某個事件項目(如點擊等),我發現我可以使用$index ,但無法理解如何在控制器中使用它。 HTML:

<div ng-repat = 'item in items'> {{item}} <span ng-show = 'ShowItemStatus[$index]'> Status </span> </div> 

我使用控制器內的NG出現,它看起來像:

$scope.ItemStatus = false 我怎麼能控制器內得到索引,以便它會看起來像$scope.ItemStatus[$index] = false - 這不是對我的作品。

回答

0

$ index僅在ng-repeat中可用。它代表了遍歷的當前位置。 如果你比較NG-重複的for循環

for(var i = 0; i < arr.length; i++) 

$指數將映射到值。 這意味着ShowItemStatus也應該是一個數組。您可以通過在控制器中遍歷項目來填充它。

+0

如果我通過id遍歷我的控制器中的項目我可以如何將此ID添加到'$ scope.ItemStatus'? '$ scope.ItemStatus [id]'不起作用。 – Shulte 2015-02-24 14:52:54

+0

看@DeOldSax的答案。做遍歷看起來像這樣http://jsfiddle.net/g5cxmf9f/ – goreorto 2015-02-24 15:27:52

+0

也許我不清楚。在我的情況下,我使用的自定義服務提供商,點擊顯示此「狀態」消息,然後消息淡出。所以我當前的控制器看起來像'$ scope.ItemStatus = ServiceProvider'。我的想法是根據項目id使這個'ItemStatus'動態化,像'$ scope.ItemStatus1','$ scope.ItemStatus2'等。 – Shulte 2015-02-24 15:39:08

0

正如goreorto已經提到的那樣,$ index就像迭代數組時的變量i一樣。 所以,你的狀態數組看起來是這樣的一個位置:

$scope.showItemStatus = [false, true, false]; 

example可以幫助你。