У меня есть атрибут ng-class
(который я сам не написал). Он привязан к строковой переменной в контроллере. Он выглядит так: <some-tag ng-class="'indicator_' + $ctrl.stringValue"></some-tag>
.Обновления привязки после нажатия на элемент, хотя строка в контроллере уже обновлена (Угловая 1.5)
Когда окно сначала загружается - оно содержит правильные данные, но после того, как строка обновлена в контроллере - значение в атрибуте class
обновляется после того, как я нажимаю на элемент (щелчок откроет список, но Я не думаю, что это актуально).
Я читал, что первое, что нужно проверить в этих случаях, состоит в том, что код окружен $scope.$apply
. Это, потому что, когда я пытаюсь добавить его, я получаю сообщение об ошибке «$ digest уже в процессе». Ищем $ctrl
и ng-class
info, я прочитал AngularJS component doc и this site, что дало мне некоторый базовый фон об этих предметах.
Дело в том, что я не нашел примеров ng-class
с $ctrl
. Может быть, это не имеет значения, но, возможно, нет :)
Пример для нерелевантного вопроса, который я нашел в теме: Angular ngClass is not updating my classes even though my condition change as expected. В целом, большинство примеров, которые я нашел, включают фигурные скобки, которые, как я считаю, не являются релевантными в этом случае, поскольку я привязываю строку (возможно, я обманываю ее :)).
Я подозреваю, что это, вероятно, не связывало его правильно, я просто не знаю почему.
Edit:
После продолжения искать эту тему, я больше не уверен, что это связано с ng-class
(так что я редактировал титул, а). Это больше похоже на проблему обновления.
Я озадачен тем, почему страница не обновляется, так как всюду я читаю - они говорят, что Угловой должен сам вызвать функцию дайджеста, и я не должен вмешиваться.
Edit2:
Я работаю с typeScript
и stringValue
обновляется через событие от службы. Но строка действительно обновляется - поэтому я не уверен, что это важная информация, чтобы понять проблему, но стоит упомянуть :)
Shmool, спасибо за ответ, но в моем случае - 'stringValue' не обновляется в результате действия пользователя - он обновляется в результате чего-то, что происходит в коде. – Yaara
Я также отредактировал вопрос - я работаю с 'typeScript', это актуально. Я не могу воспроизвести проблему, так как я работаю с некоторыми другими службами и используя один из них для создания события. ** Но точка - ** услуга вызывает событие, контроллер ловит его и обновляет строку (строка обновляется!). Но после этого - привязка '$ ctrl.stringValue' в HTML не обновляется, пока страница не обновится, и она не обновится сама по себе. – Yaara