我们说这是我的路由器设置 -
router.js:
App.Router.map(function(){
this.resource('photos', function(){
this.resource('photo', {path: '/:photo_id'}, function(){
//this.route('edit');
});
});
});
photo.js:
App.Photo = DS.Model.extend({
path: DS.attr('string'),
resolution: DS.attr('string'),
author: DS.belongsTo('user'),
dateTaken: DS.attr('date'),
aperture: DS.attr('string'),
focalLength: DS.attr('string'),
.
.
.
exposure: DS.attr('string')
});
photosRoute.js:
App.PhotosRoute = Ember.Route.extend({
model: function(){
return this.store.find('photo');
}
});
photos.hbs:
<div class="container">
<div class="row">
{{#each photo in controller}}
<div class="col-md-4">
{{#link-to 'photo' photo}}{{photo.path}}{{/link-to}} <br />
By: {{photo.author}} <br />
</div>
{{/each}}
</div>
</div>
{{outlet}}
如上所示,我只在photos.hbs模板中使用{{photo.path}}和{{photo.author}}来显示所有照片的列表。但是,在这个设置中,调用/#/ photos会从我的django REST服务器获取每张照片的所有字段 - 我对此不感兴趣。有没有办法从照片模型中获取/#/照片和完整的照片模型中的几个字段,只有当我点击单张照片即/#/ photos / photo_id
我尝试了几件事:
非常感谢任何帮助。
答案 0 :(得分:0)
不,Ember-Data中没有部分加载的模型。 (事实上,我认为任何大型Ember-Data替代品都不具备该功能)。在大多数情况下,你的模型应该足够小,加载所有记录并不重要。当您启用GZIP时,您可能甚至不会注意到差异。如果您有一个特殊用例,其带宽非常有限,您可能只想编写自己的持久性库。 (您可能还可以修改Ember-Data或滥用其某些功能来完成相同的任务,但我建议您不要这样做。)