【发布时间】:2018-02-08 12:01:23
【问题描述】:
在ng-repeat 的上下文中,我遇到了ng-style 和ng-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-style 和 ng-disabled 似乎评估为布尔值是真的......即使当我查看布尔值的当前状态时(这就是为什么 {{ showAll }} 在那里) 这是错误的。
如果我将布尔值更改为 true,然后再更改为 false,则功能按预期工作。只有在初始页面加载时才会发生这种意外行为。
【问题讨论】:
-
你也可以分享控制器代码吗?
-
@NarenMurali 应该无关紧要吧?
-
只是想要一些样本变量来复制问题,无论如何都很好
-
@NarenMurali 控制器相当复杂。我认为这比什么都更令人困惑。
-
检查一次 showAll 的类型,我最初假设它是字符串。这就是为什么条件在负载下工作正常的原因。 if('false') 为真。
标签: javascript angularjs checkbox boolean angularjs-ng-repeat