我試圖訪問當前模板URL,當我改變模板的控制器中的狀態。AngularJS - 如何從控制器獲取TemplateUrl?
的路線:
lrdcom.config(
function($stateProvider, $urlRouterProvider, $locationProvider, stringUtilsProvider) {
$stateProvider
.state(
'docs',
{
templateUrl: function($stateParams) {
return 'src/pages/' + $stateParams.doc + '.html';
},
url: '/docs/:doc'
}
);
}
);
在控制器方面,我想知道是什麼templateURL實際上返回:
pageViewer.controller(
'pageViewerController',
function($scope, $location, $state) {
// how to get current url of template?
}
);
如,如果templateURL返回src/pages/mydoc.html
如何將我拿到控制器的網址?
我看過一些SO答案,建議在控制器中訪問$route
或$state
,但我仍然無法得到它。
你是對的,我可以做到這一點。但是,我爲templateUrl設置了一個函數,因此獲取'$ state.current.templateUrl'返回的是函數而不是字符串。爲了讓它起作用,我所要做的就是像'$ state.purrent'templateUrl($ stateParams)''那樣傳遞'$ stateParams'。謝謝。 –