2013-05-01 40 views
1

使用:EmberJS定製ATTR變換序列化的自定義對象的數組

Ember.VERSION : 1.0.0-rc.1 
Handlebars.VERSION : 1.0.0-rc.3 
jQuery.VERSION : 1.9.1 

我已經得到了周圍的序列化ANS使用自定義轉換反序列化的自定義對象的列表建立了一個模型。它看起來像這樣:

DS.RESTAdapter.registerTransform('list', { 
    serialize: function(value) { 
    return value.mapProperty('line').join("\n"); 
    }, 
    deserialize: function(value) { 
    return (value || '').split(/\n/). 
     map(function(line) { return App.ListItem.new(line: line); }); 
    } 
}); 
App.ListItem = Ember.Object.extend({ 
    line: '' 
}); 
App.MySuperModel = DS.Model.extend({ 
    list: DS.attr('list'); 
}); 

它的工作好了,模型變髒,當我添加或刪除列表中的項目,但是當我更新列表項的行不弄髒也沒有恢復到以前的狀態時,我回滾交易。

有沒有人有任何想法如何讓它的工作?我寧願不將關係用於簡單列表,並在我的服務器上保持這種關係。

回答

2

找到了一種方法來解決它,但我仍然會喜歡一種更清晰的方法,誰會提供一個。

我做錯了是:我操縱原始數組線,添加或刪除線,所以燼沒有檢測到任何變化(沒有.set('lines',...))和它正在回滾到已更改的原始數組。

我在做什麼,現在正在線邁上了一個新數組(使用得心應手.copy()方法),並使用.SET(「線」,...)告訴我的模型,其線價值已經改變。

(結論:你的睡眠問題,他們往往會自己解決^^)