当前位置: 首页 > 面试题库 >

AngularJS:如何对我的应用程序的所有路由使用一种解析

姜胤
2023-03-14
问题内容

我想解决为我的应用程序所有页面加载当前用户的承诺。目前,我在每条$routeProvider.when()路线中都重复执行该决议。

  $routeProvider.when('/users/edit/:userId', {
  templateUrl: 'app/app/assets/partials/user-edit.html', 
  controller: 'UserEditController',
  resolve:{  
    'currentUser':function( UserService){            
        return UserService.getCurrentUser();
      }
  }
  });

  $routeProvider.when('/staff_profil/edit', {
  templateUrl: 'app/app/assets/partials/profil-edit.html', 
  controller: 'ProfilEditController',
  resolve:{  
    'currentUser':function( UserService){            
        return UserService.getCurrentUser();
      }
  }
 });

我的目标是解决所有路由的当前用户,而无需重复。


问题答案:

您总是可以$routeProvider使用自己的实现将现有的when方法包装在上。

var myModule = angular.module('myModule', ['ngRoute'])
   .config(['$routeProvider', function($routeProvider){

      var originalWhen = $routeProvider.when;

      $routeProvider.when = function(path, route){

         route.resolve = {
            'currentUser':function( UserService){            
              return UserService.getCurrentUser();
            }
         };

         return originalWhen(path, route);
      };

   }]);

您可能想要在其中添加一些错误检查,并使用诸如underscoresdefaults方法之类的方法,而不是仅覆盖现有的resolve属性,但是至少这样,您可以保证所有路由都具有所需的内容。

将它包装成一个辅助方法也很容易。



 类似资料:
  • 问题内容: 我有一个单页应用程序,实际上只有一个页面。只有一个视图使用angularjs完成了许多javascript / ajax逻辑,但是没有路由到其他视图。 因此,我想在网址末尾混搭hashbang(#/)。我可以以某种方式完全关闭angularjs路由吗? 顺便说一句:我了解Htm5Mode,但是我希望它能在所有浏览器中使用。 问题答案: 如果没有定义,则不会进行路由,因此您的url中不会

  • 问题内容: 我正在研究一个新的ASP.NET MVC和AngularJS应用程序,该应用程序旨在作为SPA的集合。我使用MVC区域概念来分隔每个单独的SPA,然后在每个MVC区域内使用AngularJS创建SPA。 由于我是AngularJS的新手,并且无法找到有关结合MVC和AngularJS路由的答案,因此我想在这里发表我的问题,以查看是否可以获得帮助。 我有标准的MVC路由设置,可用于每个M

  • 问题内容: 谷歌上有一篇博客文章,他们正在索引javascript应用程序。但是,我的AngularJS应用程序www.fore- cite.com似乎根本没有索引。为了启用索引并使内容可搜索,我有什么特别的事情要做吗? 问题答案: Google搜寻器确实在其搜寻的页面上执行javascript。使用AngularJS,您需要采取一些步骤来确保您的应用程序得到正确的爬网和索引。 您必须使用html

  • 问题内容: 因此,我正在编写一个框架,我希望以此为基础来开发一些我正在使用的应用程序(该框架在那里,所以我有一个可以使用的环境,并且该系统可以让我使用例如一个登录) 我要创建这个框架,并且它的应用程序都使用面向资源的体系结构。 现在,我想创建一个URL路由类,该类可以由APP编写器(也可能由CMS App用户)扩展,但我想通过查看以下方法找出最佳方法:其他应用程序如何做到这一点。 问题答案: 我更

  • 我想要一个可以跟踪我所有应用程序使用时间的应用程序。如何在颤振中实现这一点?要使用哪些软件包?