2016-07-05 69 views
0

我正在使用ui路由器和Angular,我的想法是UI的布局中的下拉菜单(也是父级状态)具有下拉菜单,该下拉菜单将更改子状态中的数据。如果AngularJS中父状态控制器发生更改,如何重新加载子状态?

路由:

.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

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

这将有助于您了解这个 link

+0

这是一个plunkr:https://plnkr.co/edit/PyaJL7?p=preview – Prianca

+0

这似乎做的伎俩!我使用$广播服务只传递一个布尔值到另一个控制器。谢谢 :) – Poot87