2015-07-12 38 views
0

主要問題灰燼REST適配器,變更記錄之前保存

有什麼樣的灰燼數據RESTAdapter一個willSavebeforeSavebeforeCreateRecorddidCreate方法?

背景

我有一個有一些數據需要我做的額外 API調用,並對每個createRecord之前使用調用的結果。

問題是,如果我嘗試覆蓋createRecord,其中的DS.Snapshot不允許我在保存之前更改其屬性。

理想我想撥打這個電話之前createRecord,但我願意createRecord爲好。

它也需要適配器方法,據我所知,不是模型掛鉤,因爲有一個本機對象,我需要訪問我不想保存在服務器上。 (即DS.ModeldidCreate從服務器返回已經存儲的數據)

回答

0

我不認爲你應該,因爲我們感到鼓舞,如果我們要推動直接使用它能夠createRecord之前做一些事情算數據到商店。例如,如果你想創建你會做一個動作的內部記錄:

this.store.createRecord('bank', { 
    name: this.get('bankForm.name'), 
    image: this.get('bankForm.image') 
}); 

但是,您可以覆蓋RESTSerializers serialize方法被調用上保存準備對象發送。然後,您可以將數據更改爲適合您的用例的任何內容。 http://emberjs.com/api/data/classes/DS.RESTSerializer.html#toc_customizing-an-app-wide-serializer

當然有一個等效的normalize方法來覆蓋,如果你正在尋找添加東西到對象後保存。 http://emberjs.com/api/data/classes/DS.RESTSerializer.html#method_normalize

+0

謝謝Kit!我認爲'serialize'可以工作,因爲不是返回一個我無法修改的DS.Snapshot,而是返回JSON,我可以修改它。我會盡快執行檢查! – blisstdev

+0

好吧,所以我終於做到了這一點,但問題是,當我返回一個承諾時'serialize'會中斷!它只會接受JSON,因此我甚至不能先提出異步請求..... – blisstdev