2012-01-14 60 views
4

我想學習一些Ember.js,雖然我意識到一切都處於不斷變化的時刻,但似乎從Sproutcore 2指南(它鏈接到Ember.js github自述文件中)的這段代碼不會「T工作不再:是否ember.js仍然支持ObjectController?如果不是,什麼取代它?

App.userController = SC.ObjectController.create({ 
     content: SC.Object.create({ 
     firstName: "Albert", 
     lastName: "Hofmann", 
     posts: 25, 
     hobbies: "Riding bicycles" 
     }) 
    }); 

綜觀ember.js源,這似乎是支持的控制器的唯一類型是arryay控制器。在不是數組/集合的一部分的單個模型對象與視圖之間進行代理是否存在已建立的最佳實踐?或者人們放棄代理並直接在模型和視圖對象之間建立綁定?思考?

回答

4

更新:是的,Ember.ObjectController是Ember的頭等部分,最常用於代理模型的屬性以便通過模板進行簡單渲染。有關文檔,請參閱http://emberjs.com/api/classes/Ember.ObjectController.html

+0

所以,你的模型和控制器是同一類?或者你使用Ember.Object的單獨sublcass代理模型? – 2012-01-14 19:18:49

+0

你仍然想分開你的模型和你的控制器。 – 2012-01-15 12:56:25

10

有計劃帶回ObjectController/ObjectProxy。彼得和我已經開始研究here,但是我們需要在Ember完全支持之前添加一些低級功能。

在此之前,您可以使用Ember.Objectcontent屬性。您必須明確引用屬性路徑中的內容屬性(例如,App.userController.content)。當ObjectController完成後,您可以將控制器切換爲繼承,您可以更新屬性路徑,以便不明確引用content

+0

謝謝你解釋。剛開始使用Ember。子類化對象現在可以做到。 – 2012-01-15 23:17:31

+1

我剛剛遇到這個,因爲我正在搜索ObjectController的狀態。我認爲這已經在Ember降落了,對嗎?順便說一句,現在這個帖子中的問題鏈接被破壞了。 – Aras 2012-10-15 15:31:42