我ng-repeat
为<li>
元素:如何通过索引获取ng-repeat中的元素?
<li ng-repeat="item in filtered =(categorySelect | filter:searchinput)" ng-class="categorySelect[$index]checked"
我试图让从物体categorySelect
属性checked
像为:
categorySelect[$index]checked
但它不工作。
我ng-repeat
为<li>
元素:如何通过索引获取ng-repeat中的元素?
<li ng-repeat="item in filtered =(categorySelect | filter:searchinput)" ng-class="categorySelect[$index]checked"
我试图让从物体categorySelect
属性checked
像为:
categorySelect[$index]checked
但它不工作。
因为你的JS语法无效。尝试下列操作之一:
categorySelect[$index].checked
或
categorySelect[$index]['checked']
或最好避免$指数干脆:
item.checked
而且你使用纳克级的错误,它的工作原理是这样的:
ng-class="{myClass: item.checked}"
这将添加“myCla ss“,如果checked属性的计算结果为true,并且如果不是,则移除该类。
另请注意,使用“点符号”和保留的关键字,如“checked”可以打破旧版浏览器,如IE9。如果发生这种情况,并且支持IE是必要的,那么尝试使用我在第二个示例中给出的数组语法或使用与“checked”不同的属性名称。
如何“检查”一个保留的JavaScript关键字?它不在微软自己的列表中:https://msdn.microsoft.com/library/0779sbks%28v=vs.94%29.aspx –
它不是技术上的,但多年前IE得到了规范错误,并将各种内置程序视为保留关键字,即使在有效的上下文中使用。见例如 - http://stackoverflow.com/a/8814616/2279347我不知道如果“检查”导致这个问题的事实,但它值得一提。如果OP没有提供任何错误信息或说明什么浏览器,它声称“它不起作用”,所以我们知道他从一个较旧的浏览器收到错误,或者甚至可能有多个错误导致它“不工作” 。试图排除所有可能性。 –
这不是一个有效的语法。你想实现什么?你是否意识到索引将取决于过滤器?您正在使用已过滤数组中元素的索引来访问未过滤的数组。你为什么不使用'item.checked'? –