2017-08-19 34 views
0

所以我想在函数内使用$ location.path来更改AngularJS中的路由位置,但它不起作用。从函数中更改路由位置

app.controller('globalCtrl', function($scope, $route, $location){ 
$scope.changePath = function(newPath){ 
    $location.path(newPath); 
}; 

$scope.changePath("/login"); 
} 

我应该如何调用函数或我该怎么做?

+0

为什么要检查'location'?是否用于检查当前路线? –

+0

我不想检查它,我想改变它 –

+0

所以使用'$ location.path(newPath)' –

回答

0

我想我找到了答案,所以在AngularJS 1,你不能在一个函数改变$位置,所以唯一的办法,我认为,通过使用,改变了$位置后,一个$间隔:

$interval(function(). {$location.hash($location.hash())},200); 

所以这个函数会每2ms反应一次位置。

0
app.controller('globalCtrl', ['$scope','location', function($scope, $location){ 
$scope.changePath = function(newPath){ 
    $location.path(newPath); 
}; 

$scope.changePath("/login"); 
}]); 
+0

虽然这段代码可以解决这个问题,[包括一个解释](http://meta.stackexchange.com/questions/114762/explaining-entirely-基于代码的答案)真的有助于提高你的文章的质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。 –