2015-09-23 19 views
5

Tôi đang làm việc với angularjs và UI-Router. Tôi muốn định cấu hình các tuyến đường chỉ định ngôn ngữ đã chọn. mặc dù phần này của tuyến đường phải là tùy chọn.AngularJS: tham số ngôn ngữ tùy chọn vào url

Tôi có tình trạng sau:

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

bây giờ nó chỉ có thể điều hướng đến mainview với

example.com/en/mainview 

Mặc dù tôi muốn cấu hình ui-router sao cho tất cả các tuyến đường sau o hợp lệ:

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

Tôi có thể đặt tuyến với tham số ngôn ngữ tùy chọn ngay từ đầu mà không có chúng tôi ing một dấu gạch chéo kép? Nếu không, bạn đề nghị lựa chọn thay thế nào?

Trả lời

3

Có một giải pháp một cách chi tiết mô tả ở đây

nơi bạn về cơ bản giới thiệu tình trạng cha mẹ

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

làm thế nào tôi có thể thay đổi lang trong tình trạng nào mà không cần thay đổi nó làm ví dụ từ /vi/xin chào/de/hello mà không cần tải lại –

Các vấn đề liên quan