我正在使用angularjs和UI-Router。我想配置指定所选语言的路由。尽管这部分路线应该是可选的。

我有以下状态:

{
    state: 'app',
    config: {
          abstract: true,
          url: '/{lang:(?:de|en)}',
          template: '<ui-view/>'
    }
}

{
    state: 'app.mainview',
    config: {
          url: '/mainview',
          templateUrl: 'app/mainview/mainview.html',
          controller: 'MainviewController',
          controllerAs: 'vm',
          title: 'Main View',
          settings: {
              pos: 1,
              displayName: 'Mainview',
              icon: 'code-array'
          }
    }
}

现在它唯一可以导航到主 View
example.com/en/mainview

尽管我想配置ui-router,以便以下所有路由均有效:
example.com/mainview
example.com/en/mainview
example.com/de/mainview

是否可以在开始时设置带有可选语言参数的路由而不使用双斜杠?如果没有,您建议采用什么替代方法?

最佳答案

这里有详细描述的解决方案

  • Angular js - route-ui add default parmeter
  • Prepend optional attribute in angular ui-router URL

  • 基本上介绍父状态
    .state('root', {
        url: '/{lang:(?:en|de|cs)}',
        abstract: true,
        template: '<div ui-view=""></div>',
        params: {lang : { squash : true, value: 'en' }}
    })
    

    关于javascript - AngularJS:URL中的可选语言参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32740578/

    10-11 19:58