2013-07-21 1 views
5

Я использую AngularJS TimePicker (ui.bootstrap.timepicker). Я хотел бы запустить событие, когда изменен timepicker. Я искал атрибут ng-change, но не нашел его.angularjs timepicker ng-change

Моя цель заключается в том, что я хотел бы сохранить изменения, внесенные в модель при изменении времени. Прямо сейчас я использовал ng-модель для установки модели, но не могу понять, как уведомить контроллер, чтобы он мог выполнить сохранение (модель сериализована в localstorage). Я хотел бы избежать использования кнопки «Сохранить», если это возможно.

Относительно примечания, я также хотел бы сделать то же самое для ui.bootstrap.datepicker.

ответ

10

Вы можете использовать $ scope. $ Watch для прослушивания изменений в timepicker (или datepicker) и вызова любого необходимого в контроллере. Вот plunker, который основан на примере начальной загрузки, но предупреждает, когда время изменяется. Вы также должны применять аналогичную логику для datepicker.

+0

Спасибо rajasaur, это будет работать хорошо. –

+2

Хорошее и простое решение. Лучшая часть, это работает, даже если вы используете один и тот же объект 'Date' между' datepicker' и 'timepicker'. Однако вы столкнулись с проблемой, если ваша процедура инициализации не установлена ​​на 100% правильно. Не устанавливайте времяпиксера (или его родителей), если время не установлено. Иначе ваше начальное время всегда будет перезаписано текущим временем. Вы можете сделать это с помощью 'ng-if':' ' – Domi

+0

Domi, я столкнулся с некоторой аналогичной проблемой, вы можете помочь что бы установить, поскольку я не понял ваше решение в комментариях. размещен вопрос для этого: http://stackoverflow.com/questions/29148040/angularjs-xeditable-plugin-bstime-weird-behaviour – Jayesh

 Смежные вопросы

  • Нет связанных вопросов^_^