另一个控制器中的AngularJS调用方法[重复]

Posted

技术标签:

【中文标题】另一个控制器中的AngularJS调用方法[重复]【英文标题】:AngularJS Invoke method in another controller [duplicate] 【发布时间】:2015-02-19 19:46:33 【问题描述】:

为了简化它。 我有 3 个带有项目列表的选项卡。 (国家、城市、街道)。在我的应用中,这些是不同的东西,但这是为了简化它。

在这 3 个选项卡中,我列出了所有计数、城市和街道。我为每个选项卡设置了单独的控制器。 CountryController、CityController 和 StreetController。

我想要达到的目标。 当用户在第一个选项卡中单击国家时,我不想调用 CitiesControlelr 中的函数,该函数将返回给定国家/地区的所有城市。当您点击 City 时,我想调用 StreetController 中的函数,该函数将返回该城市的所有街道。

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

【问题讨论】:

【参考方案1】:

您可以将一个对象放在所有控制器范围的父范围内,以存储选定的值。

<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>

【讨论】:

以上是关于另一个控制器中的AngularJS调用方法[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从angularjs中的另一个控制器调用函数

同一页面上两个不同控制器的Angularjs双向绑定字段[重复]

AngularJS 控制器可以从同一模块中的另一个控制器继承吗?

不同选项卡中控制器之间的Angularjs通信[重复]

在AngularJs中父子页面如何相互调用方法和接收值

在角度js中将值从一个控件传递到另一个控件[重复]