Я пытаюсь реализовать языковой коммутатор, где, если пользователь нажимает "de" на любой странице со стороны "en", он берет их на эту страницу со стороны "de". Если я console.dir параметр $state, он предоставляет значения, которые я хочу, с "текущим" свойством данного состояния $. Если я попытаюсь выполнить console.dir $state.current, чтобы сосредоточиться на значениях, которые я хочу, он дает только свойство родительского состояния (мои текущие представления вложены).
Мое текущее мышление заключается в том, что я на url/en/content, и динамически я могу затем использовать мою навигацию по языку, динамически загружая соответствующие точки назначения в какой-то атрибут данных, выбирая их с помощью настраиваемой директивы, d инициируйте "перейти" и установите значение моего предпочтительного языка для angular -трансляции.
Ключевой вопрос на данный момент заключается в том, что это имя $state - опять же, когда просто просматривается $state, текущий объект дает значения, которые я хочу, но $current.state напрямую дает только родительское состояние.
Если у кого-то есть лучшее предложение о том, как это сделать (в angular способе - без специального мусора cookie), я рад принять предложения.
Спасибо!
Update! КОДЫ ОБРАЗЦОВ:
Ссылка на объекты моих состояний:
var urlStates = {
en: {
home: {
name: 'home',
url: '/en',
templateUrl: 'templates/'+lang+'/home.html',
abstract: 'true'
},
home_highlights: {
name:'home.highlights',
url: '',
templateUrl: 'templates/'+lang+'/home.highlights.html'
},
home_social:
{
name: 'home.social',
url: '/social',
templateUrl: 'templates/'+lang+'/home.social.html'
},
home_map:
{
name: 'home.map',
url: '/map',
templateUrl: 'templates/'+lang+'/home.map.html'
}
};
Мои государства:
$stateProvider
.state(urlStates.en.home)
.state(urlStates.en.home_highlights)
.state(urlStates.en.home_social)
.state(urlStates.en.home_map);
$locationProvider.html5Mode(true);
})
Контроллер:
.controller('LandingPage', function($translate, $state){
this.state = $state;
this.greeting = "Hello";
});
И, наконец, вывод, который я вижу в dom:
С this.state = $state;
{
"params": {},
"current": {
"name": "home.highlights",
"url": "",
"templateUrl": "templates/en/home.highlights.html" },
"transition": null
}
С this.state = $state.current
{
"name": "",
"url": "^",
"views": null,
"abstract": true
}