【问题标题】:Option url path UI-Router选项 url 路径 UI-Router
【发布时间】:2015-11-28 05:24:04
【问题描述】:

在我的 Angular 应用程序中,我大量使用 UI-Router 的嵌套状态。

我正在尝试创建一个父状态,该状态根据具有可选区域设置路径的 URL 确定应用程序的区域设置。

  • 西班牙语www.website.com/es/search
  • 英文版www.website.com/search

'/es' 是西班牙语所必需的,但缺少参数会暗示英语,我宁愿没有 '/en'

我希望此状态的任何子状态都继承该语言环境值。

$stateProvider
    .state('localization', {
        abstract: true,
        url: '/:locale?',
        params: {
            locale: { value: 'en' }
        }
    })
    .state('search', {
        url: '/search',
        parent: 'localization'
    });

我希望能够在任何子状态下使用$stateParams.locale

【问题讨论】:

    标签: javascript angularjs localization angular-ui-router single-page-application


    【解决方案1】:

    Q&A几乎一样:Angular js - route-ui add default parmeteranother here

    解决方案是像这样创建根状态:

    .state('localization', {
        url: '/{locale:(?:en|es|cs)}',
        abstract: true,
        template: '<div ui-view=""></div>',
        params: {locale : { squash : true, value: 'en' }}
    })
    

    然后任何子状态都可以将其用作父状态:

    .state('home', {
        parent: 'localization', // parent will do the magic
        url: "/",
        ...
    })
    .state('activity', {
        parent: 'localization',
        ...
    

    Check it here,这里也是完全正常工作的 plunker

    【讨论】:

    • 很高兴看到这一点 ;) 享受强大的 UI-Router,先生!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    相关资源
    最近更新 更多