繁体   English   中英

角路线解决不等待诺言

[英]Angular route resolve not waiting for promise

我是angular的新手,我有一条用户路线,尝试在呈现视图之前解决该用户对象。 我注入了$ q并推迟了promise,但是,视图在返回promise之前仍在加载。

路线:

.when('/user/:userId', {
    templateUrl: 'user/show.html',
    controller: 'UserController',
    resolve: {
        user: userCtrl.loadUser
    }
})

调节器

var userCtrl = app.controller('UserController', ['$scope',
    function($scope){
        $scope.user = user; // User is undefined

        // This fires before the user is resolved
        console.log("Fire from the controller");

    }]);

userCtrl.loadUser = ['Restangular', '$route', '$q',
    function(Restangular, $route, $q) {

        var defer = $q.defer();

        Restangular.one('users', $route.current.params.userId).get().then(function(data) {
            console.log("Fire from the promise");
            defer.resolve(data);
        });

        return defer.promise;
    }];

浏览了Github问题之后,我发现了一个类似的问题,并使用以下解决了该问题:

userCtrl.loadUser = ['Restangular', '$route',
    function(Restangular, $route) {
        return Restangular.one('users', $route.current.params.userId).get();
    }];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM