Я занимаюсь переходом с версии 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>-->
Обновите страницу, и тогда вы увидите ошибку:
Angular не обновляет ng-класс в соответствии с изменением свойства «active».
Я попытался понять, что может быть причиной этой ошибки, и после многих попыток я обнаружил, что модуль 'ngAnimate'
вызывает эту проблему. попробуйте удалить зависимость 'ngAnimate'
(script.js):
//var app = angular.module('app', ['ngAnimate']);
var app = angular.module('app', []);
И тогда вы можете видеть, что все в порядке, поэтому 'ngAnimate'
версия 1.3.* вызывает эту проблему.
Итак, это ошибка AngularJS, я прав?
Если нет, то что я делаю не так?