2012-01-14 57 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