如果AngularJS中的父状态控制器发生更改,如何重新加载子状态?

时间:2016-07-05 11:17:33

标签: javascript angularjs angular-ui-router

我正在使用带有Angular的ui-router,我的想法是UI的布局中的下拉列表(也是父状态)有一个下拉列表,它将更改子状态中的数据。

路由:

.state('App', {
            url : '/',
            controller : 'AppController',
            templateUrl : 'views/layout.html',

        })

.state('App.userProfile', {
            parent : 'App',
            url : 'profile',
            templateUrl : 'views/user-profile.html',
            controller : 'UserProfileController'            
        })

HTML下拉列表:

<div class="top-bar">
<div class="top-bar-logo"></div>
<label>Active team</label>
<select class="clean-custom-select margin-bottom-10"
        ng-options="team._id as team.Name for team in userTeams"
        ng-change="changeActiveTeam(ActiveTeamModel)"
        ng-model="ActiveTeamModel">
<option value="">Choose a team</option>


所以我想要实现的是当选择下拉列表更改时,子视图将重新加载相关的更改。但是,这必须适用于所有子状态。上面的代码只是一个子状态的一个例子,但有很多。

对于更多上下文,下拉列表将包含团队名称。一旦用户选择了一个团队,所有子州都应该引用该团队。

1 个答案:

答案 0 :(得分:1)

根据您的要求,您可以使用角度服务 - $ emit,$ broadcast,$ on来交换父子层次结构上的事件和范围更改通知。

这将有助于您理解这一点 link