我有两个控制员:
<div ng-controller="Main">
<div ng-controller="Map"></div>
</div>在控制器Main中,我有变量$scope.mapCoord;,如何在控制器Map中传递这个变量
发布于 2015-05-19 13:28:35
使用服务。例如:
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
发布于 2015-05-19 13:00:44
您使用事件在$broadcast、$emit和$on使用的控制器之间传递它。
http://mariuszprzydatek.com/2013/12/28/sharing-data-between-controllers-in-angularjs-pubsub-event-bus-example/
发布于 2015-05-19 13:52:12
在"Map“控制器中,将"Main”范围设置为当前作用域,如下所示:
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;
}]);https://stackoverflow.com/questions/30326217
复制相似问题