我正处于从版本 1.2.* 到 1.3.* 的过渡中,我遇到了一个非常奇怪的 关键 漏洞。
在我的应用程序中,我有一个非常简单的 directive
包含 template
与 ng-class
(具有范围属性的条件)由于某种原因它不适用于 1.3.* 版本,但它适用于 1.2.* 版本。
看看这个Plunker来说明问题。
这个Plunker
代码是 angular 1.2.* 版本,你可以看到它工作正常。
尝试更改 Angular 版本(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>-->
刷新页面,然后你可以看到错误:
Angular 不会根据“事件”属性的变化来刷新 ng-class。
我试图了解导致此错误的原因,经过多次尝试后我发现
'ngAnimate'
模块导致此问题。尝试删除'ngAnimate'
依赖项(script.js): //var app = angular.module('app', ['ngAnimate']);
var app = angular.module('app', []);
然后你可以看到一切都很好,所以
'ngAnimate'
版本 1.3.* 导致此问题。所以它是 AngularJS 错误 , 我对吗?
如果没有,我做错了什么?
最佳答案
你有什么特别的理由使用 replace
指令中的选项?如果没有,您可以将其删除,它可以正常工作。使用 Angular 1.3.9 链接到工作 plunker:
http://plnkr.co/edit/jLIS9uJ1PHC64q6nEmtB?p=preview
V1.3.9 docs告诉 replace
已被弃用并且很少需要指令起作用,显然在您的情况下它也设法造成了一些麻烦。
关于angularjs - Angular ng-animate 1.3.* 导致 ng-class inside 指令出现意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28045585/