$location.path 获取之前的路径
$location.path get me previous path
我是 angularjs 的新手,我想获得当前状态 url 但是当我使用 $location.path()
功能时,它会给我最后的状态,我点击它例如在我最初点击仪表板时创建的这个 plunker 在我点击帐户后得到空字符串,在我单击仪表板后它让我得到帐户 url 的名称 (/view1)
而不是 (/view2)
为什么会这样?
这是我的笨蛋 http://plnkr.co/edit/EHkgk0x48JsrNeX2FqgG?p=preview
发生这种情况是因为您在 ng-click
内部调用了 reloading
函数,然后实际路线发生变化。
像这样更改您的控制器:
app.controller('MainCtrl', ['$scope', '$location', function($scope, $location){
// Fired when the transition begins.
$scope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams){
console.log("State changed: " + $location.path())
})
// Fired on click:
$scope.reloading = function(){
console.log("On click: " + $location.path())
}
}]);
并观察控制台中的输出 - 我想你会更好地理解这种方式发生的事情。
您的 reloading()
函数在您单击按钮的 url 上处理。只有在那之后它才会进入下一页。所以它不会写下一页的位置。
比如说:
您单击仪表板,它记录空字符串。
您点击帐户,它不会执行任何操作,因为未指定点击处理程序。
现在,您当前的 url 是 /view1
当您单击仪表板时,将调用 reloading
函数,它会记录当前的 url,即 /view1
,然后导航到新的 url /view2
。
P.S:试试这个:
点击仪表板,它会记录空字符串。
现在,您当前的 url 在 /view2
再次单击仪表板,它将记录 /view2
我是 angularjs 的新手,我想获得当前状态 url 但是当我使用 $location.path()
功能时,它会给我最后的状态,我点击它例如在我最初点击仪表板时创建的这个 plunker 在我点击帐户后得到空字符串,在我单击仪表板后它让我得到帐户 url 的名称 (/view1)
而不是 (/view2)
为什么会这样?
这是我的笨蛋 http://plnkr.co/edit/EHkgk0x48JsrNeX2FqgG?p=preview
发生这种情况是因为您在 ng-click
内部调用了 reloading
函数,然后实际路线发生变化。
像这样更改您的控制器:
app.controller('MainCtrl', ['$scope', '$location', function($scope, $location){
// Fired when the transition begins.
$scope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams){
console.log("State changed: " + $location.path())
})
// Fired on click:
$scope.reloading = function(){
console.log("On click: " + $location.path())
}
}]);
并观察控制台中的输出 - 我想你会更好地理解这种方式发生的事情。
您的 reloading()
函数在您单击按钮的 url 上处理。只有在那之后它才会进入下一页。所以它不会写下一页的位置。
比如说:
您单击仪表板,它记录空字符串。
您点击帐户,它不会执行任何操作,因为未指定点击处理程序。
现在,您当前的 url 是 /view1
当您单击仪表板时,将调用 reloading
函数,它会记录当前的 url,即 /view1
,然后导航到新的 url /view2
。
P.S:试试这个:
点击仪表板,它会记录空字符串。
现在,您当前的 url 在 /view2
再次单击仪表板,它将记录 /view2