A1x
Новичок
Всем привет,
сделал компонент на Angular 1.5 - что-то вроде всплывающего flash сообщения, например на отправку формы - "форма сохранена" или "ошибка валидации" на основе бутстраповских стилей соответственно alert-success, alert-danger и т.д.
тег компонента выглядит так
если присваиваем например
- появляется зеленое всплывающее сообщение и через какое-то время исчезает по таймауту
проблема в том что нельзя два раза подряд показать одно и то же сообщение например 'success' - когда второй раз присваиваем ctrl.alert.status = 'success'; - компонент не срабатывает потому что значение по факту не изменилось и умный Angular не меняет состояние. (не вызывается обработчик $onChanges компонента)
Собственно вопрос - как сделать чтобы компонент перерисовывался? Есть вариант перерисовывать по событию сгенерированному $rootScope.$broadcast(), но это похоже на стрельбу из пушки по воробьям, потому что в данном случае есть совершенно определенный адресат для этого события
поиграться можно тут - https://jsfiddle.net/x11a/qjtzwgka/18/
как можно заметить если нажимать кнопки success/error по очереди то все работает, если одну подряд то нет. Буду благодарен за любые замечания потому что у меня на Angular опыта мало
сделал компонент на Angular 1.5 - что-то вроде всплывающего flash сообщения, например на отправку формы - "форма сохранена" или "ошибка валидации" на основе бутстраповских стилей соответственно alert-success, alert-danger и т.д.
тег компонента выглядит так
Код:
<active-alert status="ctrl.alert.status" text="ctrl.alert.message"></active-alert>
Код:
ctrl.alert.status = 'success';
ctrl.alert.message = 'форма сохранена';
проблема в том что нельзя два раза подряд показать одно и то же сообщение например 'success' - когда второй раз присваиваем ctrl.alert.status = 'success'; - компонент не срабатывает потому что значение по факту не изменилось и умный Angular не меняет состояние. (не вызывается обработчик $onChanges компонента)
Собственно вопрос - как сделать чтобы компонент перерисовывался? Есть вариант перерисовывать по событию сгенерированному $rootScope.$broadcast(), но это похоже на стрельбу из пушки по воробьям, потому что в данном случае есть совершенно определенный адресат для этого события
поиграться можно тут - https://jsfiddle.net/x11a/qjtzwgka/18/
как можно заметить если нажимать кнопки success/error по очереди то все работает, если одну подряд то нет. Буду благодарен за любые замечания потому что у меня на Angular опыта мало