2015-02-24 59 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可以帮助你。