$ rootScope变量在状态转换后未保存

时间:2015-01-22 17:57:15

标签: angularjs controller parse-platform ionic-framework

.controller('FrameCtrl', ['$scope','$state','$rootScope', '$stateParams',
    function($scope, $state, $rootScope, $stateParams) {

        console.log($rootScope); // all the data is there.
        console.log($rootScope.activeAddress); // undefined
        console.log($rootScope.activeRestaurant); // undefined   

}])

我试图理解为什么,即使$ rootScope对象同时拥有activeAddressactiveRestaurant对象,当我console.log()具体时它们也是空的。

在上一个状态的控制器中,我使用这两行代码设置这两个对象,如果这有所不同:

// Parse.com promise returns array of addresses after login.
$rootScope.activeAddress = data.addresses[0];
// After getting restaurant ID from activeAddress, copy object to activeRestaurant
$rootScope.activeRestaurant = $rootScope.aRestaurant;

简而言之,我想知道为什么$rootScope.activeAddress$rootScope.activeRestaurant返回undefined,即使它们出现在$ rootScope父对象中。

修改 以下是上一个州HTML页面的标记:

<button class="button button-block button-positive" ng-click="login()" 
    ui-sref="frame.menu({menu: 'appetizers'})">
    LOG IN
</button>

1 个答案:

答案 0 :(得分:1)

这是因为Angular加载A-sync并且控制器在rootScope之前加载。尝试使用$ q

查看defer()和promise