我有一个控制器。
app.controller('first',['$scope','scopeService', function ($scope,scopeService){
$scope.initialize = function()
{
scopeService.store('value', $scope);
}
}]);
我的第二个控制器是
app.controller('second',['$scope','scopeService', function ($scope,scopeService){
$scope.initialize = function()
{
scopeService.get('value', $scope);
}
}]);
但我的第二个控制器在第一次被加载之前所以我得到了未定义的值..
答案 0 :(得分:1)
您可以通过两种不同的方式在控制器之间传递数据。一种方法是使用服务来获取和存储数据。然后两个控制器都可以从服务本身获取数据。服务是单例,所以如果它将数据存储在其变量中,那么另一个控制器也可以获得。
另一种方法是使用Angular事件。您可以从第二个控制器发出事件,让第一个控制器监听事件。
示例代码,发出事件:
$scope.$emit('event-name', {data: someDate});
然后使用$ rootScope:
接收事件$rootScope.$on('event-name', function (event, data) {
//do something with data
});
在您的情况下,您应该在控制器收到数据时发出事件。然后听取此事件的第一个控制器也将获得数据。