2015-09-23 12 views
5

Angularjs ve UI-Router ile çalışıyorum. Seçilen dili belirten yolları yapılandırmak istiyorum. rotanın bu kısmı isteğe bağlı olsa da.AngularJS: url'ye isteğe bağlı dil paramı

Ben şu durumları:

{ 
    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' 
      } 
    } 
} 

şimdi onun ben ui-Router`ı istiyorum rağmen

example.com/en/mainview 

ile Mainview gitmeniz mümkün sadece bu yüzden tüm o aşağıdaki yolları geçerli:

example.com/mainview 
example.com/en/mainview 
example.com/de/mainview 

Bizden önce isteğe bağlı bir dil parametresi olan bir rota ayarlayabilir miyim çift ​​eğik çizgi mi? Eğer hayır ise, hangi alternatifleri öneriyorsunuz?

cevap

3

ayrıntılı bir çözüm burada temelde ana devlet tanıtmak

açıklanmıştır;

.state('root', { 
    url: '/{lang:(?:en|de|cs)}', 
    abstract: true, 
    template: '<div ui-view=""></div>', 
    params: {lang : { squash : true, value: 'en' }} 
}) 
+0

i olmadan herhangi bir durumda lang nasıl değiştirebileceğinizi /tr/hello adresinden örnek olarak değiştirin/de/merhaba yeniden yüklemeden –