【发布时间】:2015-01-20 12:37:53
【问题描述】:
我正处于从版本 1.2.* 到 1.3.* 的转换过程中,遇到了一个非常奇怪且严重的错误。
在我的应用程序中,我有一个非常简单的directive 包含一个template 和ng-class(具有范围属性的条件),由于某种原因它不适用于 1.3.* 版本,它适用于 1.2.*版本。
看看这个Plunker 来说明问题。
这个 Plunker 代码是 angular 1.2.* 版本,你可以看到它工作正常。
尝试更改角度版本(index.html)
<script src="https://code.angularjs.org/1.3.9/angular.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-animate.js"></script>
<!--<script src="https://code.angularjs.org/1.2.28/angular.js"></script>
<script src="https://code.angularjs.org/1.2.28/angular-animate.js"></script>-->
刷新页面,然后就可以看到bug:
Angular 不会根据 'active' 属性的变化来刷新 ng-class。
我试图了解导致此错误的原因,经过多次尝试后,我发现'ngAnimate' 模块导致了此问题。尝试删除'ngAnimate' 依赖(script.js):
//var app = angular.module('app', ['ngAnimate']);
var app = angular.module('app', []);
然后你可以看到一切都很好,所以'ngAnimate'版本1.3.*导致了这个问题。
所以这是 AngularJS 错误,对吗?
如果不是,我做错了什么?
【问题讨论】:
-
感谢您的提示。自从升级以来,我遇到了 ng-class 的问题,该类要么没有更新,要么在更新的范围变量上保留了旧值和新值。我引用了 ng-animate 模块,但实际上并没有使用它。自从删除该引用后,到目前为止我还没有看到这个问题。
标签: angularjs angularjs-directive ng-animate ng-class isolate-scope