AngularJS中使用$location.path,直接跳转不了

AngularJS中使用$location.path,直接跳转不了,但是打印出的路径是对的,要把浏览器最小化后再打开,页面才就成功跳转了,为什么?

阅读 9.5k
1 个回答

$location需要添加在函数参数中,而且$location.path('/url')中括号是需要参数的即你的路径,直接使用$location.path()的话获取的是当前链接的path地址,实现不了跳转的。另外只有规定了路由才可以实现跳转。
例子: 当前地址localhost:8000/#/

  $location.path() = '';值是空的,
  当地址是localhost:8000/#/login
  $location.path() = '/login';

下面的例子会实现页面跳转:

  var app = angular.module("appName",[ngRoute]);
  app.config(function($routeProvider){
      $routeProvider
      .when('/login',{
          templateUrl: 'login.html' //链接对应的html文件 
      })
      .otherwise({
          redircTo: '/login'
      })
  })
  
  app.controller('controllerName', function($scope, $location){
      $scope.goPath = function(){
          $location.path('/login');  //在html中调用这个函数就可以实现跳转
      }
  })
  

可以参考我的一个demo,git地址:https://github.com/yulei521/shop_transaction_demo,页面之间跳转就是用的路由加$location.path()

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题