ng-style和ng-disabled最初评估为true,即使在ng-repeat中boolean为false?

时间:2017-08-30 17:03:05

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

我在ng-style的上下文中遇到ng-disabledng-repeat的奇怪问题。我有以下模板......

        <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似乎评估布尔值是否为真...即使我查看布尔值的当前状态(这就是为什么{{ 1}}在那里)它是假的。

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

1 个答案:

答案 0 :(得分:1)

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