如何在控制器Angular JS中传递数据?

时间:2015-05-19 12:53:45

标签: angularjs

我有两个控制器:

<div ng-controller="Main">
   <div ng-controller="Map"></div>
</div>

在控制器Main中,我有变量$scope.mapCoord; 如何在控制器Map中传递此变量?

3 个答案:

答案 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)

答案 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;
}]);