我有两个控制器:
<div ng-controller="Main">
<div ng-controller="Map"></div>
</div>
在控制器Main
中,我有变量$scope.mapCoord;
如何在控制器Map
中传递此变量?
答案 0 :(得分:2)
使用服务。例如:
var app = angular.module('myApp', [])
app.service('sharedProperties', function () {
var mapCoord= 'Test';
return {
getProperty: function () {
return mapCoord;
},
setProperty: function(value) {
mapCoord= value;
}
};
});
在主控制器内
app.controller('Main', function($scope, sharedProperties) {
$scope.mapCoord= sharedProperties.setProperty("Main");
});
在地图控制器中
app.controller('Map', function($scope, sharedProperties) {
$scope.mapCoord= sharedProperties.getProperty();
});
这是你的小提琴。 JSFiddle
答案 1 :(得分:0)
您可以使用事件在$broadcast
,$emit
和$on
答案 2 :(得分:0)
在你的地图&#34;控制器,设置&#34;主要&#34;范围到当前范围,如下:
app.controller('Map', ['$scope','$controller',function($scope, $controller) {
$controller('Main', {
$scope : $scope
});
}]);
之后,您可以从他的儿子控制器访问主控制器的所有范围:
app.controller('Map', ['$scope','$controller',function($scope, $controller) {
$controller('Main', {
$scope : $scope
});
var coord = $scope.mapCoord;
}]);