2013-08-04 43 views
1

我的用戶JSON返回結果,像這樣:如何定義新映射灰燼,以避免沒有映射錯誤

{ 
    users: [{...}] 
    some_other_data: {} 
    some_other_data2 [{...}] 
} 

如果我刪除從JSON結果其他鍵 - 然後它會正常工作,但我真的需要那些額外的其他「鍵」被包含在JSON結果中。

我試圖從這裏回答適用的解決方案 - return single record with ember-data find() and multiple params

但改變了我的代碼

App.Store = DS.Store.extend 
    revision: 12 
    adapter: 'DS.RESTAdapter' 

到類似的解決方案上面的東西只是打亂了我的餘燼應用程序請求的路徑。

回答

2

在您的JSON響應中不支持額外的屬性在餘燼數據。

所支持的唯一的「額外」的性質是metasince,例如:

{ 
    meta: {} 
    since: {} 
    users: [{...}] 
} 

這額外的屬性可以在以後掛接到你的串行的extractMeta功能,像這樣被提取:

App.CustomRESTSerializer = DS.RESTSerializer.extend({ 
    extractMeta: function(loader, type, json) { 
    var meta, since; 
    meta = json[this.configOption(type, 'meta')]; 
    since = json[this.configOption(type, 'since')]; 
    if (!meta || !since) { return; } 
    Ember.set('App.metaDataForLastRequest', meta); 
    Ember.set('App.sinceForLastRequest', since); 
    this._super(loader, type, json); 
    } 
}); 

App.Store = DS.Store.extend({ 
    adapter: DS.RESTAdapter.create({ 
    serializer: App.CustomRESTSerializer 
    }) 
}); 

IMO,如果可以的話,你應該改變JSON從後臺返回,並通過定義一個額外的模型獲取額外的數據並將其綁定到你的UserhasManybelongsTo之間的關係模型,使事情工作。

希望它有幫助。

+0

感謝您的幫助。我使用你的確切代碼。 – David