在angularjs中的其他控制器中使用下拉列表的值
我有两个下拉列表,我想在其他控制器中使用所选选项。 i、 e我在下拉列表中有两个办公室,我选择了office_1,我想在其他一些控制器中使用值i.e office_1,我可以在其中执行检查条件。我如何链接这两个控制器 这是我的下拉代码在angularjs中的其他控制器中使用下拉列表的值,angularjs,Angularjs,我有两个下拉列表,我想在其他控制器中使用所选选项。 i、 e我在下拉列表中有两个办公室,我选择了office_1,我想在其他一些控制器中使用值i.e office_1,我可以在其中执行检查条件。我如何链接这两个控制器 这是我的下拉代码 <div class="col-xs-12"> <div class="col-xs-4 col-xs-offset-1 "> <h5>Select the System:</h5> <s
<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>
使用服务在两个控制器之间传递所选值:
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.如果控制器嵌套,则可以直接从子控制器访问父控制器的模型值