Angular的路由解析不等待promise
Angular route resolve not waiting for promise
我是angular的新手,我有一个用户路由,我试图在渲染视图之前解析用户对象。我已经注入$q并延迟了承诺,但是,在承诺返回之前,视图仍然在加载。
路线:
.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();
}];
相关文章:
- 等待's返回Promise而不是value
- 正在等待bluebird promise内部的可选流程操作
- 使用jQuery并行执行多个promise后等待完成
- 等待promise解析后再执行代码
- 如何使EXPECT条件等待promise被解析(代码封装在方法中)
- 在promise链中等待DOM元素中的突变
- 在循环中使用 q promise 的最佳方法是什么?等待链完成,然后再迭代到下一个
- 在返回结果之前,我如何等待 jQuery.ajaxComplete in promise.done
- 使用 promise 等待数据库操作
- JQuery Promise:fail()在未等待Promise解析的情况下被调用
- defer.promise 不等待对象解析
- 如何创建一个返回等待EventEmitter的promise的函数
- 生成器在等待promise解析时返回未定义的值
- Angular -等待promise和onload方法被完成
- 在下一次循环迭代之前等待promise结果
- 如何让Node在无限while循环中等待promise完成
- 定义一个NavigationInstruction,等待promise返回
- angular1:如何在父控制器中等待promise解析
- Angular的路由解析不等待promise
- 等待promise和nested then完成