Возможно, вы захотите разделить его немного дальше, и у вас будет доступно следующее:
- директива / компонент searchBar, содержащий ввод, историю и т. Д.
- Сервис SearchServiceкоторую searchBar может вызвать, когда текст поиска изменяется.Это также позволит другим компонентам подключаться к.
Например, если у вас несколько контроллеров:
searchService.onSearch(function(searchFor){....});
Каждый контроллер может затем предоставить прослушиватель поиска для службы поиска.Вам не нужно «менять контроллеры» в панели поиска или вносить какие-либо реальные изменения в SearchService без улучшения.Но каждый активный контроллер теперь может выполнять свой собственный поиск.
В чем-то подобном, который я использую, у меня есть (MemberController):
searchService.onLookup(function(lookup){ ... perform lookup to populate drop down ...});
searchService.onSelected(function(selected) { ... now get all the information re: selected member ...});
Если у вас есть несколько представлений из-за вложенности, вывместо этого можно добавить addOnSearch (), чтобы предоставить список обратных вызовов, но для этого потребуется правильно удалить их $ onDestroy.