2015-10-14 60 views
0

我有两个下拉列表,我想在其他一些控制器中使用选定的选项。 即我在下拉菜单中选择了2个办公室,并选择了office_1,我想在其他控制器中使用该值(即office_1),以便实现检查条件。如何连接两个控制器。在angularjs中使用某些其他控制器中的下拉列表的值

这里是我的下拉代码

<div class="col-xs-12"> 

<div class="col-xs-4 col-xs-offset-1 "> 
    <h5>Select the System:</h5> 


    <select id="repeatSystem" ng-model="selectedSystem" style="width: 100%"> 
     <option ng-repeat="(key,value) in systems" value="{{key}}">{{key}}</option> 
    </select> 
</div> 
<div class="col-xs-4 col-xs-offset-1"> 
    <h5>Select the Office:</h5> 

    <select id="repeatOffice" ng-model="selectedState" style="width: 100%"> 
     <option ng-repeat="system in systems[selectedSystem]" value="state">{{system}}</option> 
    </select> 

</div> 

回答

0

使用服务进行通信的两个控制器之间选择的值:

module.factory('SharingService',function(){ 
    var selectedValue; 
    return{ 
    setValue:function(value){ 
        selectedValue=value; 
       }, 
    getValue:function(){ 
       return selectedValue; 
       } 
    } 
} 

使用的控制器的一个观察者来设置值;

module.controller('Controller1',function($scope,SharingService){ 

$scope.$watch('selectedOffice',function(newVal){ 
     SharingService.setValue(newVal); 
    }) 


}); 

在另一个控制器中使用SharingService.getValue方法获取它。

备选方案:

1.You还可以使用事件广播两个控制器之间进行通信的数据。

2.如果控制器是嵌套的,则可以从子控制器直接访问来自父级的模型值。

相关问题