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