0
比方說,這是我的路由器設置 -燼數據:繼承親子資源
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服務器獲取每張照片的所有字段 - 我不感興趣。有沒有辦法從/#/照片和完整的照片模型,只有當我點擊單張照片/#/照片/ photo_id只從照片模型的幾個領域取得的方法
我有一個嘗試過幾件事:
- 創建了一個名爲'photoDetail'的新子級資源,用於擴展原始'photo'。理想情況下,這應該取代單一的'照片'。
- 從我收集的{async:true}屬性僅適用於在它們之間建立關係的模型之間進行異步提取 - 但不適用於照片模型中的各個字段,如'exposure','focalLength'。
任何幫助將不勝感激。
謝謝你的回覆@GJK。好吧,所以從你的建議 - 我需要我的模型足夠小。下面的工作也是如此:將'照片'和'photoDetails'作爲兩個獨立的並行/同級資源,並在它們之間建立一對一的關係 - – 2014-10-17 20:29:19
另外一個簡單的問題:如果'photo'和'photoDetail'模型有一個他們之間的一對一關係,他們會天生具有相同的ID?如果不是如何將2個模型與ID相連接? – 2014-10-17 20:33:49
是的,只要它們以某種方式鏈接(就像一對一的關係),有兩個獨立的模型就可以工作。另外,我認爲Ember-Data允許這些ID是相同的,只要它們是不同類型的(我認爲)。 – GJK 2014-10-17 21:57:59