我有两个下拉菜单,我想在其他控制器中使用所选的选项。 即我在下拉列表中有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>
答案 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.如果控制器是嵌套的,则可以直接从子控制器访问来自父级的模型值。