我用ngClass做了一个简单的类切换,使用材质设计图标(可能不相关)。下面是一个例子:
<button ng-click="toggle = !toggle">
<i class="mdi" ng-class="{'mdi-filter': toggle, 'mdi-filter-remove': !toggle}"></i>
</button>
由于某些原因它不起作用,'mdi-filter-remove‘类将在!true求值时被删除。因此,为了测试,我将类更改为“mdi-filter-outline”。有了这个类,它以某种方式工作得很好!我只是改变了类,如果我把前一个放回去,它就会停止工作。最奇怪的是,在切换到“mdi-filter-outline”类之前,“mdi-filter-remove”类会瞬间闪烁。
如果我为切换设置了一个断点,并开始点击'step over next function call‘,我确实会在几次点击之后看到'mdi-filter-remove’,就在执行angular.js中的17286行之后:
fn(value, ((last === initWatchVal) ? value : last), current);
这个类没有在项目中的任何地方使用,我用atom搜索了整个项目,没有匹配!它是从哪里来的?
请帮帮我!
发布于 2016-08-03 09:59:47
你的项目中有ngAnimate吗?如果这样做,则使用ng-class
添加和删除类会导致在幕后添加和删除一些特殊的类,以便与过渡动画一起使用。其中一个特殊类是带有-remove
后缀的类。例如,如果您使用ng-class
添加和删除了一个名为my-class
的类,那么每当元素转换时,my-class-add
和my-class-remove
类也将与它们一起显示。这就是为什么你会在瞬间看到它。
因此,您应该只重命名您的类。-remove
后缀与angular自动执行的操作冲突。
https://stackoverflow.com/questions/38730482
复制相似问题