我正处于从版本 1.2.* 到 1.3.* 的过渡过程中,我遇到了一个非常奇怪和严重的错误。
在我的应用程序中,我有一个非常简单directive
的包含一个template
with ng-class
(with condition to scope property),由于某种原因它不适用于 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 错误,对吗?
如果没有,我做错了什么?