【问题标题】:ng-style and ng-disabled initially evaluate as true even though boolean is false in ng-repeat?ng-style 和 ng-disabled 最初评估为 true,即使 boolean 在 ng-repeat 中为 false?
【发布时间】:2018-02-08 12:01:23
【问题描述】:

ng-repeat 的上下文中,我遇到了ng-styleng-disabled 的一个奇怪问题。我有以下模板...

        <li ng-repeat="value in currentFacet.values track by $index">
          {{ showAll }}
          <input type="checkbox" ng-model="options[$index]" ng-true-value="'{{ value.label }}'" ng-checked="value.isActive" ng-disabled="showAll"/>
          <span ng-style="showAll ? {color:'gray'} : {}">{{ value.label }}</span>
        </li>

这会产生一个复选框列表。有一个 showAll 布尔值可以禁用所有这些复选框。

最初当页面加载时,ng-styleng-disabled 似乎评估为布尔值是真的......即使当我查看布尔值的当前状态时(这就是为什么 {{ showAll }} 在那里) 这是错误的。

如果我将布尔值更改为 true,然后再更改为 false,则功能按预期工作。只有在初始页面加载时才会发生这种意外行为。

【问题讨论】:

  • 你也可以分享控制器代码吗?
  • @NarenMurali 应该无关紧要吧?
  • 只是想要一些样本变量来复制问题,无论如何都很好
  • @NarenMurali 控制器相当复杂。我认为这比什么都更令人困惑。
  • 检查一次 showAll 的类型,我最初假设它是字符串。这就是为什么条件在负载下工作正常的原因。 if('false') 为真。

标签: javascript angularjs checkbox boolean angularjs-ng-repeat


【解决方案1】:

检查 showAll 的类型一次,我假设它最初是字符串。这就是为什么条件在负载下工作正常的原因。 if('false') 为真。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    相关资源
    最近更新 更多