我需要模板中的url($ location.path的内容)中的当前路径。但不通过控制器,因为我有很多控制器(并且我不想复制$scope.currentUrl = $location.path;
的声明)。感谢您的建议。
回答
AngularJS模板只能看到范围内可用的内容,因此您需要以某种方式将$ location服务放在范围中。 AngularJS应用程序中总有一个名为$ rootScope的范围,因此可以用于您的用例。
你可以做的是使用一个模块的run()方法在$ rootScope暴露$位置:
var myApp = angular.module('myApp', []).run(function($rootScope, $location) {
$rootScope.location = $location;
});
这将使“位置”的所有模板可用,以便以后你可以做在您的模板:
Current path: {{location.path()}}
另一种方法是使用更多的语义和通用ui-router,然后在控制器,retrieve the current state,并将其存储在$scope
:
app.controller('MyCtrl', ['$scope', '$state', function MyCtrl($scope, $state) {
$scope.state = $state.current.name;
...
}
为什么downvotes,如果我可能会问? – 2015-11-29 05:00:34
为我工作得很好。 – 2016-01-28 07:53:12
我认为downvotes可能是因为即使OP使用ui-router(单独这个问题几乎没有足够的理由迁移),这将返回状态名称,这通常与URL的路径完全不同(它也将包括任何动态PARAMS)。例如,在我的应用程序中,对于路径:“/ graphs/56ce3/edit”,您的代码将返回状态的名称“edit.graph”。用夸张和半截的话来说“不,看,这个解决方案是针对与我所拥有的问题不同的问题。” :) – 0x24a537r9 2016-02-18 08:09:07
- 1. 获得来自location.path特定值() - AngularJS
- 2. $ location.path()vs $ http.get() - AngularJS
- 3. AngularJs - $ location.path不工作
- 4. angularjs $ location.path('/ home')不重定向到查看
- 5. 获取AngularJS模板绑定
- 6. AngularJS $ location.path循环回根
- 7. AngularJs location.path不传递参数
- 8. 如何获得Mirth Connect的HL7模板?
- 9. 如何获得的Kohana BASE_URL模板
- 10. 如何获得widget值到任何WordPress模板的源代码
- 11. 如何获得我的mustache.js模板文件?
- 12. 我如何获得所有树枝模板从主继承?
- 13. 我如何获得这个Django模板来呈现?
- 14. Backbone.js在传递到模板之前如何获得i18n值
- 15. 如何在我的模板中动态模型angularjs
- 16. AngularJS与模板
- 17. AngularJs模板URL
- 18. angularJs模板
- 19. 获得Django的模板
- 20. 如何获得基于使用AngularJs
- 21. 如何在AngularJS模板上启用Javascript?
- 22. 如何结合AngularJS和Thymeleaf模板
- 23. AngularJS定制指令$ location.path不工作
- 24. AngularJs:$ location.path无法正常工作
- 25. ASP.NET MVC - AngularJS $ location.path()路由不正确
- 26. angularjs正常导航而不是$ location.path
- 27. Angularjs - $ location.path在URL中使用斜线
- 28. 如何使用AngularJS从远程URL获取模板
- 29. 如何从ngrx商店中获取值到我的模板中?
- 30. AngularJS模板VS templateURL
在一个具有自己范围的指令模板中,您需要使用'当前路径:{{$ parent.location.path()}}' – benweet 2014-01-30 22:36:07
使用'{{$ root.location。因为具有隔离作用域的任何指令都不能通过简写方法访问它,并且'$ parent.location'是不可靠的,这取决于你的作用域深度。 '$ root'总是有效的。 – 2016-09-27 16:41:17