EmberJS: ArrayController with Dynamic Segments (Router),但不包括

EmberJS: ArrayController with Dynamic Segments (Router) but not Store

本文关键字:Router 不包括 Segments ArrayController with Dynamic EmberJS      更新时间:2023-09-26

我想知道如何构建一个"简单"的应用程序:

/photos/ (shows all photos – via ArrayController but without a remote service)
/photos/1  ... /photos/2  (shows one photo)

谁能提供最佳实践?

你必须定义一个与你想要的url匹配的路由:

App.Router.map(function() {
    // this will give you ~/#/photos
    this.route('photos') 
    // this will give you ~/#/photos/1 (or whatever number)   
    this.route('photo', { path: '/photos/:photo_id' }); 
});

下面是一个示例:http://jsfiddle.net/schawaska/AabL8/

如果你想做嵌套视图,比如显示一个拇指列表,当点击拇指时,你会看到列表下面的图片实际大小,那么你必须通过使用路由资源来做稍微不同的事情,像这样嵌套:

App.Router.map(function() {    
    this.resrouce('photos', function() {
        this.route('photo', { path: '/:photo_id' });    
    });
});

如果你这样做,你必须在"photos"模板中添加一个{{outlet}}并在负责单个照片对象的类的名称中添加Photos

  • PhotoRoute变为PhotosPhotoRoute
  • data-template-name="photo"变为data-template-name="photos/photo"

下面是一个示例:http://jsfiddle.net/schawaska/JfRbf/