我需要模板中的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. 如何獲得JSON到Freemarker模板(FTL)
- 4. AngularJS與$ location.path和ngRoute
- 5. AngularJs - $ location.path不工作
- 6. 如何獲得本地化的模板(templateUrl)與AngularJS
- 7. 如何獲得AngularJs
- 8. angularjs $ location.path('/ home')不重定向到查看
- 9. 快遞和angularJs $ location.path不重定向到/
- 10. 獲取AngularJS模板綁定
- 11. AngularJs location.path不傳遞參數
- 12. $ location.path不與AngularJS工廠
- 13. AngularJS $ location.path循環回根
- 14. AngularJS location.path自定義URL
- 15. 如何獲得的Kohana BASE_URL模板
- 16. 如何獲得模板類的課程?
- 17. 如何獲得Mirth Connect的HL7模板?
- 18. 我們如何在angularjs中將模板添加到div中
- 19. 如何獲得widget值到任何WordPress模板的源代碼
- 20. 我如何獲得一個Ansible模板後,有條件的
- 21. 我如何獲得這個Django模板來呈現?
- 22. 如何獲得我的mustache.js模板文件?
- 23. 我們如何才能在mediawiki中獲得語言模板
- 24. 我如何獲得所有樹枝模板從主繼承?
- 25. Backbone.js在傳遞到模板之前如何獲得i18n值
- 26. 如何在我的模板中動態模型angularjs
- 27. 爲什麼我得到錯誤「非模板」f用作模板「
- 28. 獲得Django的模板
- 29. AngularJs模板URL
- 30. AngularJS與模板
在一個具有自己範圍的指令模板中,您需要使用'當前路徑:{{$ parent.location.path()}}' – benweet 2014-01-30 22:36:07
使用'{{$ root.location。因爲具有隔離作用域的任何指令都不能通過簡寫方法訪問它,並且'$ parent.location'是不可靠的,這取決於你的作用域深度。 '$ root'總是有效的。 – 2016-09-27 16:41:17