AngularJS / UI路由器 - 状态URL / TemplateURL中的区域设置

时间:2016-06-27 15:23:38

标签: javascript angularjs angular-ui-router

我想要完成的是将$scope变量设置为状态参数

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

目前我只是使用变量

var locale

但是,如果

,我希望URL动态更改
$scope.locale

变化。例如,如果用户选择英语,则范围将更改为

$scope.locale = 'en';

我希望这也反映在states / URL中,并将用户带到相应的语言页面。我想我正试图做这样的事情:

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

有没有办法在$scope ??

中实时更新此$stateParams信息

如何在templateUrl和页面的URL中完成实时更改?

1 个答案:

答案 0 :(得分:2)

你应该通过在url中指定参数来做到这一点,而templateUrl是一个注入了$ stateParams的函数:

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