Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $routeProvider-为所有路由注入相同的依赖项_Javascript_Angularjs - Fatal编程技术网

Javascript $routeProvider-为所有路由注入相同的依赖项

Javascript $routeProvider-为所有路由注入相同的依赖项,javascript,angularjs,Javascript,Angularjs,以下代码: $routeProvider .when(“/page1”{controller:“MyController”,解析:{Strategy:“StrategyOne”}}) 在实例化控制器“MyController”之前,等待解决策略依赖关系 在我的应用程序中,我有一个函数,它返回一个promise,解析后,它将提供给当前用户。让我们调用该函数Authentication.currentUser() 我希望我的应用程序的所有页面在呈现页面之前等待该承诺得到解决。我很乐意为每个路线声明添

以下代码:

$routeProvider .when(“/page1”{controller:“MyController”,解析:{Strategy:“StrategyOne”}})

在实例化控制器“MyController”之前,等待解决策略依赖关系

在我的应用程序中,我有一个函数,它返回一个promise,解析后,它将提供给当前用户。让我们调用该函数
Authentication.currentUser()

我希望我的应用程序的所有页面在呈现页面之前等待该承诺得到解决。我很乐意为每个路线声明添加一行,但我宁愿避免重复

我有一个名为“MainCtrl”的控制器,由于我的模板中的这一行,所有页面都会调用该控制器:

我认为解决这一问题的一种可能方法是,如果可以在控制器级别将
Authentication.currentUser()
指定为“MainCtrl”的依赖项(而不是在路由级别,因为此依赖项不依赖于特定的路由)


谢谢你们的帮助,伙计们

如果可以从默认路由器移动到
ui路由器
,则可以使用嵌套状态执行此操作。仅从以下内容复制示例:


对于那些想用标准$routeProvider解决这个问题的人,我的建议如下:

$rootScope.$on('$routeChangeStart', function (event, next, current) {
  if (!next.resolve){ next.resolve = {} }
  next.resolve.currentUser =  function(Authentication){
    return Authentication.currentUser();
  };
});

谢谢,我要试试这个
ui路由器!
$rootScope.$on('$routeChangeStart', function (event, next, current) {
  if (!next.resolve){ next.resolve = {} }
  next.resolve.currentUser =  function(Authentication){
    return Authentication.currentUser();
  };
});