Angular的新路由器可以全局激活多个视图

Angular new router can activate to multiple views globally

本文关键字:激活 视图 全局 新路 路由器 Angular      更新时间:2023-09-26

我想知道是否有一种方法可以防止多个路由在同一时间实例化组件,如果用户没有登录

例如:

angular.module('app', [])
  .controller('MyController', ['user', '$http', MyController]);
function MyController(user, $http) {
  this.user = user;
  this.$http = $http;
}
MyController.prototype.canActivate = function() {
  return this.user.isLogin;
};

这里只针对这个组件,有一种方法可以在一个地方定义所有的路由,我想要这个功能吗?

最简单的方法是创建一个文件,例如

protecteroutes .js并创建如下:

var components = [AccountController, PrivateController];
components.forEach(function(comp) {
   comp.prototype.canActivate = function() {
       return this.user.isLogin;
   }
});