2012-06-22 26 views
5

Tôi cần khớp đường dẫn vào URL. Đường dẫn phải là kết thúc của URL sau một mẫu nhất định, nhưng tôi không thể làm được. Ember.js luôn kết thúc nó khớp với dấu gạch chéo tiếp theo.Định tuyến Ember.js: kết thúc khớp của url

var router = Ember.Router.extend({ 
    location: 'history', 
    enableLogging: true, 
    root: Ember.Route.extend({ 
     index: Ember.Route.extend({ 
      route: '/' 

      repo: Ember.Route.extend({ 
       route: '/:repo_id', 

       index: Ember.Route.extend({ 
        route: '/' 
       }), 

       files: Ember.Route.extend({ 
        route: '/files', 

        index: Ember.Route.extend({ 
         route: '/' 
        }), 

        sub: Ember.Route.extend({ 
         route: '/:path' 
        }) 
       }) 
      }) 
     }) 
    }) 
}); 

Với router này:

  • /myrepo/files/ sẽ phù hợp root.repo.files.index
  • /myrepo/files/README sẽ phù hợp root.repo.files.sub với path=README
  • /myrepo/files/folder/README sẽ phù hợp root.repo.files.sub và sẽ định tuyến lại tôi /myrepo/files/folder/path=folder thay vì path=folder/README

Làm cách nào để có tuyến đường phụ khớp với phần cuối của URL với :path ngay cả khi có dấu gạch chéo vào đó hay không?

Trả lời

3

Chức năng này đã được committed đến chi nhánh kho của Ember.js master. Nó không có trong bản dựng 1.0.0-pre2, vì vậy cho đến khi phiên bản mới được phát hành, bạn sẽ cần phải build Ember.js yourself hoặc tìm phiên bản dựng sẵn.

Cách sử dụng cơ bản

Thay vì tiền tố phân khúc động của bạn với một dấu hai chấm :, sử dụng dấu hoa thị *. Tuyến đường của bạn sẽ sử dụng cú pháp tương tự như:

Ember.Route.extend({ 
    route: '/:repo_id/files/*path' 
}); 

Đoạn đường sẽ có sẵn giống như là thuộc tính động thông thường. Tuy nhiên, nó sẽ bao gồm mọi thứ sau files/ trong URL, bao gồm cả dấu gạch chéo.

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