我正在開發一個使用Ionic框架的移動應用程序,並且我有一個很大的問題來處理幫助頁面的多語言功能。angular.js - 通過語言動態設置templateUrl(app.config stateprovider)
我有2種語言(en + de),我想根據語言加載help_en.html或help_de.html。
我在主控制器中設置了默認語言和changeLanguage函數,它將lang設置爲$ cookies.language並且它正在工作;
1.View:
<a ng-href="#/help" >
2.MainCtrl - 更改語言功能:
$scope.changeLanguage = function(lang) {
$scope.translation=translationService.getTranslation($scope, lang);
$cookies.lang=lang;
};
3.從app.js配置看起來就像這樣:
var myApp = angular.module('MyPetApp', ['ionic', 'config', 'MyApp.controllers', 'ngCordova', 'ngResource', 'ngCookies']);
myApp.config(function($stateProvider, $urlRouterProvider) {
var $cookies;
angular.injector(['ngCookies']).invoke(function(_$cookies_) {
$cookies = _$cookies_;
});
if ($cookies.language==undefined){
$cookies.language = 'en'
}
$stateProvider
.state('default', {
url: "/",
templateUrl: "templates/default.html"
})
.state('help', {
url: '/help',
templateUrl: function(){
return 'templates/help_'+$cookies.lang+'.html'
}
})
$urlRouterProvider.otherwise('/');
});
這是在鉻工作,但移動將始終停留在「en」的語言,即使我把價值從$ cookies.language更改爲「德」。
我該怎麼做才能完成這項工作?任何ideea? 我真的很感謝所有幫助
感謝
任何其他簡單的工作方法將是巨大的 – godzo101 2015-02-23 19:57:15
我認爲這不是一個很好的解決方案,以創建2個國家的公司簡介恩和德:) – godzo101 2015-02-23 20:08:08
爲什麼要使用cookie,而不是本地存儲? – 2015-02-23 22:44:24