2013-09-23 71 views
0

Ember本身很棒,但其文檔繁瑣複雜。我花了2周時間,還沒有掌握到它。對我來說最困難的部分是Ember-Data如何與Ember整合。Ember-數據模型生命週期

例如,對於新動作,我創建集團模式的新紀錄在合適的路徑,像這樣:

model: -> 
    Twicl.Group.createRecord 
    access: 'public' 

然後我抓住提交事件並做出控制器中的以下內容:

save: (record) -> 
    record.save().then => 
     @transitionTo 'groups' 

如果沒有錯誤並且它正在工作,它預計會到達groups.index路由,但是在集合中,我不僅看到最近保存的記錄,而且(我猜)它的原型也沒有屬性中的數據。

粗魯的解決方案是在索引器來過濾模型:

#instead of 
model: -> 
    Twicl.Block.find() 
#do 
model: -> 
    Twicl.Block.find(isNew: false) 

是不是這樣?或者我錯過了什麼?爲什麼我們不能在控制器init上獲得全新的集合?

此外,我將不勝感激任何指向實際指南的鏈接(官方指南和API當然除外),我搜索的所有內容都與Ember和Ember-Data的舊版本無關。 :(

回答

1

過渡文件有很多好的信息有關獲取到公測1/2:https://github.com/emberjs/data/blob/master/TRANSITION.md

而不是

Twicl.Group.createRecord() 

現在你應該做的

this.store.createRecord('group') 

,而是的

Twicl.Block.find({isNew: false}) 

你會做

this.store.find('block',{isNew : false}) 
+0

謝謝!發佈後,我發現我一直在使用Ember Data的0.14版本,這不是我將要做的:)但主要問題是通過{isNew:false}進行顯式過濾是常見做法?爲什麼它在指南中從未提及過?當我詢問所有記錄時會發生什麼:爲什麼會有我新創建的記錄和一些空記錄。我只是不能在backbone.js之後得到它(我記得在不使用它的一年後)新創建並保存的記錄只是將其狀態從新變爲持久並保留在集合中。 –