加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AngularJS:了解$rootScope.$on(‘$routeChangeSuccess

发布时间:2020-12-17 07:10:58 所属栏目:安全 来源:网络整理
导读:我正在登录页面,成功后,它重定向到主页.默认情况下,我显示登录页面此代码: app.run(function($rootScope,$location) { $rootScope.$on('$routeChangeSuccess',function() { $location.url("/login"); });}); 然后在验证后端的用户/传递详细信息后,我将用户
我正在登录页面,成功后,它重定向到主页.默认情况下,我显示登录页面此代码:

app.run(function($rootScope,$location) {
  $rootScope.$on('$routeChangeSuccess',function() {
      $location.url("/login");
  });
});

然后在验证后端的用户/传递详细信息后,我将用户带到主页:

$scope.login = function() {
    if ($scope.username === 'admin' && $scope.password === 'pass') {
      console.log('successful')
      $rootScope.$on('$routeChangeSuccess',function() {
          $location.url("/home")
      });
      $location.url("/blah");
    } else {
      $scope.loginError = "Invalid username/password combination";
      console.log('Login failed..')
    };
  };

如果我删除if语句的else部分之前的第二个$location.url,则重定向似乎不起作用.然而,它没有使用该网址(/ blah),它回家了.但如果删除了url blah,则重定向逻辑不起作用.

我似乎无法理解为什么我必须使用两个$location.url().如果有人能帮助我理解这个重定向系统是如何工作的,我会觉得有用吗?

这可能不是最好的做法,我愿意接受如何改进的建议,这里是Plunker example

解决方法

总而言之,这是一条错误的道路IMO ……

显然你需要锁定任何资源服务器端,因为客户端总是可以在一个简单的调试器中“改变”……但我想你已经知道了……

替代路由解决方案,如https://github.com/dotJEM/angular-routing或https://github.com/angular-ui/ui-router IMO为您提供了一些更好的处理方法,但我们只是评估一些方法……

一个是:http://plnkr.co/edit/ZUKB1v?p=preview虽然这要求你解决所有路线上的用户…所以…

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读