我想知道如何构建一个“简单”的应用程序:
/photos/ (shows all photos – via ArrayController but without a remote service)
/photos/1 ... /photos/2 (shows one photo)
有人可以提供最佳实践吗?
答案 0 :(得分:2)
您必须定义与您想要的网址匹配的路线:
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' });
});
});
如果您这样做,则必须在“照片”模板中添加{{outlet}}
并在负责单个照片对象的类的名称中添加Photos
PhotoRoute
变为PhotosPhotoRoute
data-template-name="photo"
变为data-template-name="photos/photo"