1
为了在允许我的任何路由启动其关联的控制器之前解析全局所需的变量,我已将以下内容添加到我的app.config
。这一直很好,但我担心这种异步调用的情况。如果发生这种情况,将无法正确解析,我的应用永远不会呈现。我怎么能防止这种情况?解析失败的异步呼叫
var originalWhen = $routeProvider.when;
$routeProvider.when = function(path, route) {
if (!route.resolve) {
route.resolve = {};
}
angular.extend(route.resolve, {
availableCodes: function($rootScope, serverService) {
if ($rootScope.isAuthenticated) {
return numbersService.getAvailableCodes().$promise.then(function(data) {
$rootScope.availableCodes = data.codes;
});
}
}
});
return originalWhen.call($routeProvider, path, route);
};
您是否有一些默认代码可供您使用?如果是这样,你可以在你的Promise链上添加一个catch,并将$ rootScope.availableCodes分配给默认值。 –