另一个控制器中的AngularJS Invoke方法

时间:2014-12-21 14:36:00

标签: javascript html angularjs

简化它。 我有3个选项卡列表。 (国家,城市,Stree)。在我的应用程序中,这些是不同的东西,但这只是简单的。

在这三个标签中,我列出了所有的国家,城市和街道。我为每个标签分配了控制器。 CountryController,CityController和StreetController。

我想要实现的目标。 当用户在第一个标签中点击国家/地区时,我会在CitiesControlelr中调用将返回给定国家/地区中所有城市的功能。点击City我想在StreetController中调用将返回该城市所有街道的功能。

如何在控制器之间实现这种“通信”?什么是正确的制作方式?

1 个答案:

答案 0 :(得分: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>