【问题标题】:ng-repeat dynamic variable nameng-repeat 动态变量名
【发布时间】:2015-08-09 13:35:05
【问题描述】:

我正在实现 ng-repeat 来为引导手风琴界面创建元素。

我有 ng-repeat 工作,但我遇到的问题是我需要动态创建 ID 以便单独定位手风琴元素。

我的 ng-repeat HTML 块引用:

<div class="panel-heading" data-toggle="collapse" data-parent="#products-accordion" href="#collapseOne">

并降低参考:

<div id="collapseOne" class="panel-collapse collapse in">

为了让它正常工作,collapseOne 需要是动态的——collapse1、collapse2 等。如何在 ng-repeat 中迭代值? "collapse" + i 基本上是我想要实现的目标。

其次,只有 ng-repeat 列表中的第一项需要这一行的“in”类:

<div id="collapseOne" class="panel-collapse collapse in">

这样可以确保打开第一个项目。

提前感谢您的帮助

【问题讨论】:

    标签: angularjs angularjs-ng-repeat ng-repeat


    【解决方案1】:

    您可以使用ng-repeats 内置的$index。 (此处的文档:https://docs.angularjs.org/api/ng/directive/ngRepeat

    所以它看起来像这样:

    <div id="collapse_{{ $index }}" class="panel-collapse collapse in">
    

    将创建:

    <div id="collapse_0" class="panel-collapse collapse in">
    <div id="collapse_1" class="panel-collapse collapse in">
    

    等等。

    对于默认打开第一个div,我认为您可以像这样使用ng-class

    <div id="collapse_{{ $index }}" ng-class="{ in : $index == 0 }" class="panel-collapse collapse">
    

    【讨论】:

    • 非常感谢这是有道理的,我现在将实现它。你知道我怎么可能只在第一次迭代时应用那个 css 类吗?想象一下,如果我可以访问可以识别第一遍的索引 [0] ......但是如何对该内联采取行动
    • 您只想将in 类添加到第一个div?
    • 是的,仅在 ng-repeat 的第一遍,因为这意味着如果 5 个 div 渲染第一个 1 将作为其引导手风琴打开
    • 我已经编辑了我的答案,以将答案添加到您问题的第二部分。我认为它应该像这样工作。
    • 太好了,我将它换成 0
    猜你喜欢
    • 2015-07-22
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多