[英]How do I handle nested data with Ember Data with any backend?
試圖找出在以Ember / Ember Data作為前端編寫的應用程序中實現嵌套資源的最佳方法,我有點發瘋。
首先,這是我的模型:
App.Gathering = DS.Model.extend({
name: DS.attr('string'),
events: DS.hasMany('event', { asynch: true })
});
App.Event = DS.Model.extend({
name: DS.attr('string'),
startDate: DS.attr('string'),
endDate: DS.attr('string'),
gathering: DS.belongsTo('gathering', { asynch: true })
});
除了非常基本的路線外,到目前為止,這還只是我的全部-當我開始使用后端時,就會遇到我的問題。 我正在編寫前端和后端,因此在此階段,我可以實現后端,但最好。 我覺得我已經搜尋了Internet,試圖找到一種可靠的,最新的方式來獲取與使用Ember Data進行收集相關聯的Event對象。 我沒有為聚會或事件獲取所有數據的問題,但是花了一點時間來弄清楚如何-給定特定的聚會(id)-僅查詢與該聚會有關的事件,而不必加載每個事件來自服務器的事件。 特別是,在稍后的過程中,將在“事件”內部嵌套一些對象,因此我的目標是為該問題尋求可行的長期解決方案。
我嘗試使用服務器返回的JSON上的“鏈接”屬性,查找了10個有關查詢參數的不同站點,並且過去三天中,幾乎已經花了很多時間來解決這個問題。 我可以使用自定義AJAX查詢,但是由於這個項目還很年輕,所以我希望以對Ember友好的方式實現它,因為我並沒有受到太多限制。
我剛接觸Ember / Ember Data(通常是前端開發),但是我從事Java編程已經有幾年了,並且在OOP / MVC / IOC等方面擁有扎實的基礎。
提前致謝!
我認為我最缺乏的是如何實際訪問這些嵌套資源的知識。 發布的答案中的示例清楚地說明了這一點。 尋找一個完整的,有效的RESTAdapter / Ember-Data示例一直是一個噩夢,對此深表感謝!
僅出於完整性考慮,如果沒有Ember Data,Ember可以正常工作。 如果您不想使用Ember Data,可以將POJO與Ember一起使用。
另外,您需要使用async
而不是asynch
。
對於使用links
異步記錄,這是一種處理關系的完全合適的方法。
App.Gathering = DS.Model.extend({
name: DS.attr('string'),
events: DS.hasMany('event', { async: true })
});
App.Event = DS.Model.extend({
name: DS.attr('string'),
startDate: DS.attr('string'),
endDate: DS.attr('string'),
gathering: DS.belongsTo('gathering', { async: true })
});
這是完全意見,但是如果我要查詢id為1
收集,我可能會這樣做。
this.store.find('gathering', 1);
{
gathering: {
id: 1,
name: 'foo',
links: {
events: '/events?gathering_id=1'
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.