以下代码:
$routeProvider
.when("/page1", { 控制器: "MyController", 解析: {策略: "StrategyOne"}})
在实例化控制器“MyController”之前等待策略依赖关系得到解决。
在我的应用程序中,我有一个返回承诺的函数,该承诺在解决后会提供给当前用户。我们称这个函数为Authentication.currentUser()
我希望我的应用程序的所有页面在渲染页面之前等待该承诺得到解决。我很乐意为每个路线声明添加一行,但我宁愿避免重复。
我有一个名为“MainCtrl”的控制器,由于模板中的这一行,所有页面都会调用该控制器:
<html ng-app="clientApp" ng-controller="MainCtrl">
我认为解决这个问题的一种可能方法是如果可以指定Authentication.currentUser()
作为控制器级别的“MainCtrl”的依赖项(不是在路由级别,因为此依赖项不依赖于特定路由)。
谢谢你们的帮助!
对于那些想要使用标准 $routeProvider 解决这个问题的人,这就是我的结论:
$rootScope.$on('$routeChangeStart', function (event, next, current) {
if (!next.resolve){ next.resolve = {} }
next.resolve.currentUser = function(Authentication){
return Authentication.currentUser();
};
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)