【发布时间】:2015-10-25 05:08:47
【问题描述】:
我有一个我无法弄清楚的情况。 ng-class 正在应用这两个类,即使表达式指定了逆逻辑。下面是表达我希望这些类如何工作的代码:isThinking 或 notThinking,但绝不是两者兼而有之:
<div class="myWidget" ng-class="{
isThinking: vm.isThinking(),
notThinking: !vm.isThinking()
}"
</div>
问题是 Angular 应用了这两个类。我不明白为什么。
我调查过:
-
$digest循环只需要触发?不,导致摘要无效 -
isThinking是否总是返回真或假,从不未定义?确认。 - 将其中一个类的名称从
notThinking更改为isReady是否解决了这个问题? (测试可能是过于模糊的正则表达式匹配)不,这些类仍然同时处于活动状态。 - 完全删除第二个
notThinking表达式是否会导致isThinking类被正确添加和删除?是的,是的。为什么会这样,我不知道。
Angular 版本是 1.4.6。
当两个表达式明显相反时,谁能想到两个类都处于活动状态的原因?
【问题讨论】:
-
你使用 ngAnimate 吗?没有 ngAnimate 是否会发生错误?不是真正的解决方案,但可能有助于找到问题的原因。
-
该函数只是检查私有属性的存在。它几乎不可能更简单。 ngAnimate 我应该看看...