Angular ngClass ghost class

Angular ngClass ghost class

本文关键字:class ghost ngClass Angular      更新时间:2023-09-26

我用ngClass做了一个简单的类切换,使用了材质设计图标(可能无关紧要)。这里有一个例子:

<button ng-click="toggle = !toggle">
  <i class="mdi" ng-class="{'mdi-filter': toggle, 'mdi-filter-remove': !toggle}"></i>
</button>

由于某种原因,它不起作用,"mdi-filter remove"类将在上被删除!真实的评价。因此,为了进行测试,我将类更改为"mdi-filter outline"。有了那个类,它在某种程度上运行得很好!我只是换了一节课,如果我把上一节课放回去,它就会再次停止工作。最奇怪的是,在切换到"mdi-filter outline"类之前,"mdi-filter-remove"类会闪烁一瞬间。

如果我为切换设置了一个断点,并开始点击"下一个函数调用的步骤",我确实在点击几下后看到了"mdi filter remove",就在angular.js中的17286行执行之后:

fn(value, ((last === initWatchVal) ? value : last), current);

该类在项目中没有在任何地方使用,我用atom搜索了整个项目,没有匹配!它是从哪里来的?

请帮忙!

您的项目中有ngAnimate吗?如果这样做,则使用ng-class添加和删除类会导致在幕后添加和删除一些特殊类,以便与过渡动画一起使用。其中一个特殊类是具有-remove后缀的类。例如,如果您有一个名为my-class的类,您正在使用ng-class添加和删除该类,那么每当元素转换时,类my-class-addmy-class-remove也将与它们一起显示。这就是你看到它的原因。

所以,你应该重命名你的类。-remove后缀与angular自动执行的操作发生冲突。