簡體   English   中英

如何使用任何后端的Ember Data處理嵌套數據?

[英]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);

JSON回應

{
  gathering: {
    id: 1,
    name: 'foo',
    links: {
      events: '/events?gathering_id=1'
    }
  }
}

當您訪問事件關系時,它將調用“ / events?gathering_id = 1”

示例: http//emberjs.jsbin.com/OxIDiVU/906/edit

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM