【发布时间】:2016-06-02 07:36:12
【问题描述】:
您好,我有一个名为 list 的跟随 json:
{
"Items" : [
{
"InternalID": 1,
"Name" : "Item 1"
},
{
"InternalID": 2,
"Name" : "Item 2"
},
{
"InternalID": 3,
"Name" : "Item 3"
}
]
}
现在我用 ng-repeat 循环这个列表,并在 div 中显示“Name”的值。一项始终处于活动状态。例如,“InternalID”= 1 的项目此时处于活动状态。列表中的下一项,这意味着在此示例中,“InternalID”=2 的项应成为具有特定样式的类。当我将“InternalID” = 2 的项目设置为活动时,列表中的下一个项目将是“InternalID” = 3 的项目,这应该得到具有特定样式的类。我是这样尝试的:
<div class="cRibbonListItem" ng-repeat="item in ctrl.list.Items" ng-init="activeIndex = item.InternalID == ctrl.value.InternalID ? $index : activeIndex" ng-transclude="listItem" ng-if="item.InternalID != ctrl.value.InternalID" ng-class="{cNextItem: $index == activeIndex + 1}">
</div>
在我的控制器 (ctrl) 中,我设置并获取了列表的当前值。比我使用 ng-init 通过比较我的值和我的项目的“InternalID”来获取活动索引。之后,我使用 ng-class 将我的特定类赋予列表中的项目,该索引比我的活动索引 + 1,所以它应该是列表中的下一个项目。这很好用,当第一次打开它时。在我设置一个新的活动项目后,它不会改变。具有特定类的第一项不会改变,它总是一样的。
这里有什么问题?很难解释,我希望它很好理解。
谢谢
【问题讨论】:
标签: angularjs ng-class ng-init