【问题标题】:I want to skip the item in ng-repeat using ng-if我想使用 ng-if 跳过 ng-repeat 中的项目
【发布时间】:2015-09-13 22:17:18
【问题描述】:

我正在尝试在 ng-repeat 中使用 ng-if 来实现 Accordions。根据条件值,ng-repeat 应该跳过 ng-repeat 中的一些项目。

例如如果 item.condition 为真,那么只有它应该显示手风琴。 下面的代码是我到目前为止所拥有的,但它不起作用。看起来对吗?

     <accordion close-others="true">
          <accordion-group is-open="isopen" ng-repeat="item in items | limitTo:2" ng-if="item.condition == "true"",ng-init="isopen=2">
                  <accordion-heading>
          {{item.label}}
            <i class="pull-right glyphicon"
                         ng-class="{'icon-arrow-up': isopen, 'icon-arrow-down': !isopen}"></i>
                  </accordion-heading>
              </accordion-group>
          </accordion>

【问题讨论】:

  • @user3320018 不!不!不!如果它不起作用,那就是代码审查的主题!
  • @user3320018 我不认为你明白。 Codereview 仅适用于工作代码。用户在他的帖子中提到了这一点:“下面的代码是我目前所拥有的,但它不起作用。”。 Codereview 仅适用于工作代码。损坏的代码在那里是题外话。
  • @user3320018 作为 Codereview 的常客,我知道这一点。如果您需要/想知道那里的内容和离题,您可以阅读on/off-topic page
  • @user3320018 不管这里是否离题,代码审查上都不是on-topic。永远不要将损坏的代码提交给 CR。
  • TLDRing 它,只有按预期工作的代码才能用于代码审查。损坏的代码来了。工作,但丑陋,代码进入 CR。

标签: javascript angularjs angularjs-ng-repeat accordion angular-ng-if


【解决方案1】:

您的ng-if 包含双引号,应该是ng-if="item.condition == true",同时从手风琴元素中删除,

您还可以将条件最小化为ng-if="item.condition",这样表达式将在item.condition 变量评估中返回truefalse

标记

<accordion close-others="true">
    <accordion-group is-open="isopen" ng-repeat="item in items | limitTo:2" 
       ng-if="item.condition" ng-init="isopen=2">
        <accordion-heading>
            {{item.label}}
            <i class="pull-right glyphicon" ng-class="{'icon-arrow-up': isopen, 'icon-arrow-down': !isopen}"></i>
        </accordion-heading>
    </accordion-group>
</accordion>

【讨论】:

  • 知道了,这是因为 ng-if="item.amenity =="false"" 中有多余的 ""。谢谢:-)
  • 我有一个问题,而不是在 ng-if 中为 true 或 false 硬编码值。我只想传递包含真或假的变量,例如:check =“true or false”。 ng-if "item.condition == 检查"。这样不行,有什么办法吗?
  • 确定..ng-if 只需要在评估时返回真或假的表达式。看看我的更新答案...
  • 谢谢。但我的情况是,我使用上面的代码作为指令。因此,对于某些条件 ng-if = "item.condition == false" 和 ng-if="item.condition==true"。所以,我试图在运行时传递 false 和 true 并使其工作。有没有一种方法可以传递变量为 false 或 true。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多