我是新的angularjs和我想获得当前状态的网址,但当我使用$location.path()
函数它给我最后一个状态,我点击它,例如在这个我做时,我点击仪表板,首先我得到空字符串后,我点击帐户,并在我点击仪表板后,它给我的帐户的名称网址(/view1)
而不是(/view2)
为什么发生这种情况? 这是我plunker http://plnkr.co/edit/EHkgk0x48JsrNeX2FqgG?p=preview
回答
您的reloading()
函数在您点击按钮的url上处理。只有在它进入下一页之后。所以它不会写下一页的位置。
说,例如:
你点击控制面板,它记录空字符串。
您点击帐户,它不会执行任何操作,因为未指定点击处理程序。
现在,您目前的网址是/view1
当你点击控制面板,该reloading
函数被调用,它记录了当前的URL,这是/view1
,然后导航到新的URL /view2
。
P.S:试试这个:
点击仪表板,它会记录空字符串。 现在,您当前的网址在/view2
再次点击仪表板,它会记录/view2
出现这种情况是因为你之前的实际路由改变调用内部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())
}
}]);
并在控制台中观察输出 - 我想你会得到更好的理解发生了什么这样的。
但是当我调用重装函数时在/ view2状态我不明白为什么?你能解释更多吗? – 2015-03-02 07:55:15
我不知道我理解你。我其实只是回答你的问题。 – PrimosK 2015-03-02 07:59:45
感谢您的解决方案:) – 2015-03-02 08:25:42
- 1. $ location.path(/一些/路径)怪异的行为
- 2. AngularJs:相对路径不重定向$ location.path
- 3. 设置通过$ location.path在UI路由器的路径()$ state.current
- 4. 更改路径大小而不更改以前的路径
- 5. 更改路径颜色不改变以前的路径
- 6. NG单击不设置$ location.path()时,路径是动态的
- 7. $ location.path没有被重定向到指定的路径
- 8. $ location.path(路径)与ngNewRouter Angularjs 1.4.4不一致工作
- 9. 我可以使用js ajax调用的路径路径吗?
- 10. PATH路径前缀
- 11. angularjs越来越以前的路线路径
- 12. functions.php中的当前路径
- 13. 角2 - 我怎样才能让我的电流路径
- 14. 的Python:绝对路径相对让到另一条路径
- 15. 回形针+ AWS S3,使用我的本地路径前缀固定路径
- 16. 我们可以让Spoon的输出跟原来的目录路径相同吗?
- 17. 获取文件以添加以前忽略的路径
- 18. 为什么即使路径包含@之前的路径,路径也能工作“\\”
- 19. WCF ServiceRoute路由前缀是否可以包含路径值?
- 20. 当使用Angular $ location.path时,无法调用未定义的方法“路径”
- 21. 如何让jQuery的JSON的URL路径
- 22. 路由测试 - Location.path()总是返回空“”
- 23. $ location.path()路由使用参数不工作
- 24. ASP.NET MVC - AngularJS $ location.path()路由不正确
- 25. 获取当前路径/路径传递_internal路线
- 26. 我可以强调一个URL路径
- 27. 不能让我的头围绕此的WebPack路径错误
- 28. 如何让我的BASH脚本知道保存的路径
- 29. 如何让Cocos2D可以搜索特定路径中的资源?
- 30. Java获取当前路径
你为什么没有在这里发布你的代码? – Satpal 2015-03-02 07:48:11
为什么我最贴在这里? – 2015-03-02 07:58:41
寻求调试的问题有助于__(“为什么这个代码不工作?”)__必须包含所需的行为,特定的问题或错误以及在问题本身中重现__it所需的最短代码.__没有明确问题陈述的问题对其他读者没有用处。请参阅:[如何创建一个最小,完整和可验证的示例。](http://stackoverflow.com/help/mcve) – Satpal 2015-03-02 08:11:16