2016-06-27 3 views
0

То, что я пытаюсь выполнить, чтобы установить $scope переменные параметры состояния,AngularJS/UI Router - Язык в государстве URL/TemplateURL

.state('form', { 
     url: '/' + locale + '/form', 
     templateUrl: locale + '/form.html', 
     controller: 'formController' 
    }) 

В настоящее время я только с помощью переменной

var locale 

Однако я хочу, чтобы динамически изменить URL, если

$scope.locale 

изменения

. Например, если пользователь выбирает английский язык, то область изменится на

$scope.locale = 'en'; 

Я хочу, чтобы это также отразить в штатах/URL и привести пользователя на соответствующую страницу языка. Я предполагаю, что я пытаюсь сделать что-то вроде этого:

.state('form', { 
     url: '/' + $scope.locale + '/form', 
     templateUrl: $scope.locale + '/form.html', 
     controller: 'formController' 
    }) 

Есть ли способ жить-обновления этой $scope информации в $stateParams ??

Как я могу выполнить живое изменение как в шаблоне, так и в URL-адресе страницы?

ответ

2

Вы должны сделать это, указав параметры в URL, и templateUrl функцию с закачиваемой $ stateParams:

.state('form', { 
     url: '/:locale/form', 
     templateUrl: function($stateParams) { return $stateParams.locale + '/form.html' }, 
     controller: 'formController' 
    }) 
Смежные вопросы