ng-check /ng-model предотвращает изменение модели, когда пользователь нажимает флажок

Я строю простую форму с переключателем. Я хочу привязать тумблер к моей модели, welcomeEmail.welcome_email_on, Когда я нажимаю на переключатель, я хочу позвонить toggleWelcomeEmail() в моем контроллере. Эта функция проверяет, является ли новое состояние истинным или ложным, и затем что-то делает. Например, если переключатель был выключен, и пользователь щелкнул по нему, он должен включиться. Если он уже включен, и пользователь щелкает его, toggleWelcomeEmail() Функция должна отображать запрос на подтверждение, а переключатель должен оставаться включенным, пока пользователь не подтвердит действие в приглашении.

У меня проблема в том, что кажется, что поведение по умолчанию ng-model а также ng-checked на флажок, чтобы обновить модель, когда пользователь нажимает флажок. Что я хочу сделать, это предотвратить дефолт. Я хочу, чтобы состояние моего флажка / переключателя отражало модель, однако я не хочу, чтобы модель обновлялась при нажатии. Вместо этого я предпочитаю звонить toggleWelcomeEmail(),

У меня вопрос, как я могу это сделать? Я пытался использовать оба ng-checked а также ng-model, но оба ведут себя одинаково. Я знаю, что могу создать два переключателя и просто показать / скрыть их в зависимости от состояния welcomeEmail.welcome_email_on, но тогда я потерял бы хорошую анимацию переключения, которая у меня есть. Я также попробовал очевидный подход положить $event.stopPropagation() на моем ng-click действие, однако это не имело никакого эффекта.

Я создал скрипку, чтобы продемонстрировать проблему.

0 ответов

Другие вопросы по тегам