2014-12-21 3 views
0

Чтобы упростить его. У меня есть 3 вкладки со списком предметов. (Страна, Город, Стри). В моем приложении это разные вещи, но это просто.Метод AngularJS Invoke в другом контроллере

В этих 3 вкладках я перечисляю все графства, города и улицы. У меня есть отдельный контроллер для каждой вкладки. CountryController, CityController и StreetController.

Что я хочу достичь. Когда пользователи нажимают на страну на первой вкладке, я хотел вызвать функцию в CitiesControlelr, которая вернет все города в данной стране. Когда вы нажимаете на «Город», я хочу вызвать функцию в StreetController, которая вернет все улицы в этом городе.

Как достичь этой «связи» между контроллерами? Каков правильный способ сделать это?

ответ

0

Вы можете поместить объект в область, которая является родительской для всех областей вашего контроллера, чтобы сохранить выбранные значения.

<div ng-init="current = {}"> 
    <div ng-controller="CountryController as countryCtrl"> 
     <select ng-options="country.code as country.label for country in countryCtrl.countries" 
       ng-model="current.country"> 
     </select> 
    </div> 
    <div ng-controller="CityController as cityCtrl"> 
     <select ng-options="city.code as city.label for city in cityCtrl.countriesFor(current.country)" 
       ng-model="current.city"> 
     </selected> 
    </div> 

</div> 
Смежные вопросы