我有一个我无法弄清楚的情况。 ng-class
正在应用这两个类,即使表达式指定了反逻辑。以下是表示我希望类如何工作的代码:isThinking
或notThinking
,但不是两者:
<div class="myWidget" ng-class="{
isThinking: vm.isThinking(),
notThinking: !vm.isThinking()
}"
</div>
问题是Angular应用这两个类。我不明白为什么。
我调查过:
$digest
周期?不,导致摘要没有效果isThinking
总是返回true还是false,从不定义?确认。notThinking
更改为isReady
会解决吗? (测试可能是一个太模糊的正则表达式匹配)不,这些类仍然同时处于活动状态。notThinking
表达式会导致isThinking
类被正确添加和删除?是的,是的。为什么,我不知道。Angular版本是1.4.6。
当2个表达式显然是反向的时,是否可以想到两个类都处于活动状态的原因?
答案 0 :(得分:2)
问题是ngAnimate
。我没有找到根本原因,但我知道disabling animate解决了这个问题就足够了。此元素未明确设置动画,但ngAnimate会影响所有内容,除非您禁用它。我认为这是对DOM操作进行计时的框架问题。
修正:
link: function (scope, el, attrs) {
$animate.enabled(el, false)
}