Angularjs:无法使用$ location.path更改URL

时间:2016-05-31 09:43:17

标签: javascript angularjs

我想将我的网页重定向到另一个网址。但是我无法使用$ location.path方法这样做。

var url = "http://" + $window.location.host + "/template/reservation.html";
$log.log(url);
$location.search({});

如果我使用它,它会起作用: -

$window.location.href = url;

但是当我使用$location.path代替上述行时,它不起作用,如下所示: -

$location.path(url);

它将url附加到当前url,这是没用的。 我想使用$ location,因为它不会像$ window那样重新加载页面。

3 个答案:

答案 0 :(得分:0)

看起来很正常,角度$location仅适用于相对网址。 对于绝对的,您必须在JS $window对象上使用window服务。

答案 1 :(得分:0)

$location.path()只需要网址的路径部分,而不是完整的网址。

所以试试这个:

$location.path("/template/reservation.html");

答案 2 :(得分:0)

我在解决方案中发帖,以防其他人也遇到同样的问题。我找到了这样的解决方案: -

我无法直接写下以下行: -

$location.path('/template/reservation.html');

$location.path("/template/reservation.html");

所以我在js文件中做了以下更改: -

var app = angular.module( 'mainApp', ['ngRoute']);
app.config( function($routeProvider){
  $routeProvider
  .when( '/', {
     templateUrl: '/login.html'
  })
  .when( '/reservationPage',{
     templateUrl: '/template/reservation.html'
  })
  .otherwise( {
     redirectTo: '/'
  });

});

并使用$ location.path,如下所示: -

$location.path('/reservationPage');