使用angularjs中某些其他控制器的下拉值

时间:2015-10-14 06:37:37

标签: angularjs

我有两个下拉菜单,我想在其他控制器中使用所选的选项。 即我在下拉列表中有2个办公室,我选择office_1,我想在其他控制器中使用值(即office_1),我可以实现检查条件。如何链接两个控制器。

这是我的下拉代码

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

1 个答案:

答案 0 :(得分: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.您还可以使用事件广播在两个控制器之间传递数据。

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