У меня такая же проблема, это, вероятно, проблема времени, но есть обходной путь. Короче говоря, существует некоторое столкновение между классом, определенным в атрибуте «class» с интерполяцией, и другими директивами того же элемента, которые пытаются добавить другой класс. удаление class="{{::item.customClass}}"
приводит к тому, что команды ng-class и ng-show работают нормально.
Я не мог воспроизвести его на плунжере, возможно, из-за большого количества задействованных компонентов. мы используем службу $ templateCache, модуль ngAnimate и директиву, которая использует ng-repeat с динамическим классом и ng-show (и многое другое, что, похоже, не влияет на проблему). Удаление любого из упомянутых вопросов решило проблему. есть одна вещь, которую я не пытался, и это пытается отделить код от иерархии ui-view
, возможно, ui-router является частью проблемы.
Debugging показал, что после того, как часы в нг-класс/NG-шоу выполняется, был добавлен правильный класс, и это выглядело так: class="{{::item.customClass}} ng-hide"
, но в конце цикла дайджеста он выглядел следующим образом: class="myCustomClass"
. Наверное, это то, что происходит и в вашем коде.
Как я справилась с этой ситуацией, перемещая item.customClass
в нг-класс, как так: ng-class=[{ ... other classes}, item.customClass]
это временное решение, а не реальное решение, потому что:
- это, вероятно, реальная проблема внутри Угловой-х код.
- Я не знаю, как использовать bind один раз здесь, и это важно, конечно.
Можете ли вы поместить свой код в http://jsfiddle.net/? Полный контекст ситуации очень поможет нам и должен стать практическим примером проблемы. – Dandy
У меня подобная проблема. ng-класс не работает. не знаю, в чем проблема. странно, что если я не загружаю этот шаблон через $ templateCache, он отлично работает. – Eran