我想从另一个ng-controller访问ng-model是否可能以及如何?在下面的代码中,我使用两个控制器,第一个控制器有mddl1,另一个控制器没有任何其他模型。但我想从第二个控制器方法访问模型值。
<div ng-controller="cnt_fnt">
<select id="dflfnt" ng-model='mddl1' ng-options='option.name for option in ddl1options.data'>
</select>
</div>
<div ng-controller="ctrl_opsection" ng-model="opmodel">
</div>
<script>
----
.controller('cnt_fnt', ['$scope', function ($scope) {
$scope.ddl1options={
data:[
{value:"Georgia, serif",name:"Style 1"},
{value:"'Times New Roman', Times, serif",name:"Style 3"},
{value:"Arial, Helvetica, sans-serif",name:"Style 4"}
]};
alert($scope.mddl1.value); //Here I Can Access the dropdown value
}])
.controller("ctrl_opsection",["$scope",function($scope){
alert(cnt_fnt.mddl1.value); //I want to access here that dropdown value
}]);
</script>
我尝试从其他ng-controller值访问ng-model值,如下面的代码。
alert(cnt_fnt.mddl1.value); //controller_name.modelname
答案 0 :(得分:1)
通常,使用service
。
当parentCtrl
向childCtrl
发送数据时,可以使用$broadcast
$on
。相反,可以使用$emit
$on
。
`controller('cnt_fnt', ['$scope','inter', function($scope,inter){
inter.data = $scope.mddl1.value;
}])
.controller('dockCtr', ['$scope', 'inter', function($scope, inter){
alert(inter.data)
}]);
app.service('inter', function(){
return {
}
});`