我已路由定義爲如何在AngularJS中加載語言特定的模板?
$ routeProvider.when( '/:文化/:gameKey /:遊戲ID /關閉',{templateUrl: '/模板/ tradingclosed',控制器:TradingClosedCtrl});
我想在角色包含「文化」參數時以某種方式請求模板,所以我可以提供翻譯的模板。
這可能嗎?
我已路由定義爲如何在AngularJS中加載語言特定的模板?
$ routeProvider.when( '/:文化/:gameKey /:遊戲ID /關閉',{templateUrl: '/模板/ tradingclosed',控制器:TradingClosedCtrl});
我想在角色包含「文化」參數時以某種方式請求模板,所以我可以提供翻譯的模板。
這可能嗎?
如果我正確地閱讀這個,你想以某種方式使用url路由中的culture
參數來確定檢索模板的位置。
可能有更好的方法,但this post描述檢索集中控制器內的$routeParams
與ng-include
動態加載視圖。
事情與此類似:
angular.module('myApp', []).
config(function ($routeProvider) {
$routeProvider.when('/:culture/:gameKey/:gameId/closed', {
templateUrl: '/templates/nav/urlRouter.html',
controller: 'RouteController'
});
});
function RouteController($scope, $routeParams) {
$scope.templateUrl = 'templates/tradingclosed/' + $routeParams.culture + '_template.html';
}
以此爲您urlRouter.html:
<div ng-include src="templateUrl"></div>
你可以定義你想用NG-控制器在你的意見來加載控制器訪問$routeParams
以獲取其他路徑參數:
<div ng-controller="TradingClosedCtrl">
</div>
我已經發布similar question與工作Plnkr example像@Gloopy建議的解決方案。
如果沒有ng-include,你無法實現這個功能的原因是路由在'configuration'塊中完成,在這裏你不能注入任何值(你可以在Modules documentation的章節中閱讀關於這些塊的內容。 &依賴
如果你想不引進新的範圍,可以更換NG-包括與我的剝離版本NG-include指令,即做絕對相同的是NG-包括做,但不創建新的範圍:source of rawInclude directive
希望解決方案能夠滿足您的使用案例
謝謝:)一個恥辱它不可能沒有包括雖然(節省資源負載和可能的一些性能)。 – Micael
我選擇了不接受答案,因爲它在使用包含功能時似乎會對範圍造成干擾,所以我仍在尋找一種很好的方法來實現此目的。 – Micael