#angularjs #datepicker #angular-material
#angularjs #datepicker #angular-material
Вопрос:
У меня есть следующий md-datepicker, который выбирает дату:
Как я мог бы получить дату из входного значения, чтобы использовать ее в другом контроллере?
Это HTML-код для md-datepicker:
<div class="text-center">
<md-datepicker id="sDay" md-min-date="availableMinDate" class="orientationBottom" ng-model="availableCalendar" md-date-filter="severalDays"></md-datepicker><br>
</div>
Комментарии:
1. Вы можете сделать данные доступными между контроллерами с помощью сервиса. Службы в angular являются одиночными, и если вы задаете в них значение, вы можете получить к нему доступ с другого контроллера.
Ответ №1:
Достаточно определить availableCalendar
на $rootScope
, к которому могут быть доступны все области иерархии, а затем и все контроллеры.
Комментарии:
1. Не рекомендуется использовать $rootScope. Как упоминает @Danilo Velasquez, сервисы — это правильный путь.
2. Вы правы. Это всегда работающее простое решение, но это то же самое, что создавать глобальные переменные, и это плохая практика. $ broadcast или $emit также могут быть полезны, в зависимости от структуры приложения.
Ответ №2:
Чтобы заставить 2 контроллера взаимодействовать, вам необходимо использовать сервис.
Создайте переменную в указанном сервисе, создайте средство получения и установки.
В вашем первом контроллере используйте установщик и отправьте свой availableCalendar
параметр в качестве параметра.
В вашем втором контроллере используйте геттер для получения значения, и теперь вы можете его использовать.
Если вы новичок в Angular, то вот эта полезная ссылка, которая мне помогла.