2015-01-26 50 views
0

This SO question解釋瞭如何將數組存儲在Ember模型中,但是如何使用自定義對象完成該操作,該操作本身也不支持supported, according to the Guides如何在Ember模型中表示覆雜對象?

這是我建立

obj[0] = {"timeInMinutes": ">120", "occurrences": 24 }; 
obj[1] = {"timeInMinutes": "90-120","occurrences": 69 }; 
obj[2] = {"timeInMinutes": "60-90", "occurrences": 53 }; 
obj[3] = {"timeInMinutes": "30-60", "occurrences": 35 }; 
obj[4] = {"timeInMinutes": "0-30", "occurrences": 24 }; 

更新對象的示例。

使用this answer中提供的信息,我能夠在我的模型上創建一個數組屬性以及其他幾個值,但是我也希望能夠創建DS.attr('object')屬性以便像這樣使用。要創建對象類型,是否需要像鏈接到SO答案中的數組那樣使用DS.Transform.extend({

App.Index = DS.Model.extend({ 
    names: DS.attr('array'), 
    country: DS.attr('string'), 
    statistics: DS.attr('object') 
+0

您鏈接到了關於Ember Data模型的指南。你在使用Ember Data嗎? – 2015-01-27 00:11:30

+0

是的,我使用EmberData,因爲它是本地存儲適配器的依賴關係 – Leahcim 2015-01-27 00:12:42

回答

0

如果您希望屬性是一個原始的對象,而不是灰燼對象,那麼你可以做到以下幾點:

ObjectTransform = DS.Transform.extend({ 
    deserialize: function(serialized) { return serialized; }, 
    serialize: function(deserialized) { return deserialized; } 
}); 

這是假設你不需要它後都改變對象通過電線進入。

+0

,那麼在設置我的模型時如何使用它?喜歡這個? '''App.myModel = Ember.Model.extend({name:DS.attr('string'), someObject:DS.attr('object') }''' – Leahcim 2015-01-28 14:48:33

+0

@Leahcim,正好。 – 2015-01-28 15:04:30

+0

我有完全相同的設置,但已經使用了命名'RawTransform'和'DS.attr('raw')'。我假設使用'object'這個詞也會起作用,注意這不僅僅是對象。不需要序列化,並且可以以這種方式使用反序列化,包括基元數組或對象數組。 – 2015-01-28 15:06:55

0

如果您使用Ember Data,則必須以Ember Data兼容方式構建您的模型。你可以有一個父母Object(當然有一個更好的名字,但你根本沒有解釋你的域名)hasManyTimespanOccurrence s或諸如此類。

+0

對不起,我不清楚。也許我沒有提供足夠的信息。我更新了OP,希望能夠提供更多的細節。在此先感謝 – Leahcim 2015-01-27 00:52:14