gpt4 book ai didi

javascript - 如何在第一个元素的 ng-repeat 中设置 Angular 模板中的变量

转载 作者:行者123 更新时间:2023-11-30 05:32:48 26 4
gpt4 key购买 nike

我有一个通过 ngResource 加载的数组。数组中的每个对象都是三层深度(对象包含对象数组,对象数组又包含对象数组),如下所示:

ngResource = [
object1 = {...},
object2 = {...},
object3 = {
...
array = [
object1 = {...}
object2 = {...}
object3 = {
...
obj1 = {...},
obj2 = {...},
obj3 = {
...
}
}
]
}
]

我想要一个 ng-repeat 为三层深循环中的每个对象创建一个 Angular Ui Accordion ,这是通过以下方式实现的:

<accordion>
<accordion-group ng-repeat="category in categories">
...
<accordion-group ng-repeat="subcat in category.subcategories">
...
<accordion-group ng-repeat="product in subcat.products">
...

一切正常。我想要的是打开每个循环中的第一个 Accordion 。 Angular UI Accordion 具有 is-open 属性,可以像这样在模板上设置:

<accordion-group ... is-open="true">
...

如果我遍历我的 Controller 中的对象并在第一个对象上添加属性 isOpen,它不起作用,因为初始数组(ngResource,我在这里给它起这个名字演示如何获取数据)直到页面加载后才加载。

如何仅在第一个对象上动态添加属性(最好在模板中)?

我也试过像这样使用 ng-if:

<div ng-repeat="category in categories">
...
<div ng-if="$first"><span ng-init="category.isOpen = true"></span></div>

但这也没有用。有什么建议吗?

最佳答案

ngRepeat 公开了一些其他特殊变量,例如 $first

将其绑定(bind)到 is-open 属性:

<accordion-group ng-repeat="subcat in category.subcategories" is-open="$first">

关于javascript - 如何在第一个元素的 ng-repeat 中设置 Angular 模板中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25862598/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com