我一次又一次被告知“永远不要在 Controller /ObjectController 上使用 .create()
,因为 Ember 会为 [我] 做这件事”。我很困惑如何在不先创建项目的情况下将项目添加到 ArrayController 中。
就我而言,我使用 Controller(不是 ObjectController)作为 ArrayController 的 itemController,因为它不受 AJAX 加载的数据支持(...这是正确的用法吗?)。我想将 itemController 的实例添加到 ArrayController,但如果不首先创建要添加的项目,我无法弄清楚如何做到这一点。
JSB 在这里: http://emberjs.jsbin.com/momikuto/17/edit
TL;DR:我不知道如何在没有 addPost
函数中的 .create()
的情况下将 Post 对象添加到 ArrayController。
最佳答案
模型与 Controller
我认为这里主要的混淆在于模型和 Controller 之间。 Controller 可以 decorate a model添加显示属性,但不是主要数据对象。
模型可以是一个简单的 JSON 对象,也可以是成熟的 ember-data。
所以,是的,Ember 会为你创建 Controller 。并且您以某种方式指定 Controller 的模型(见下文)。
设置 Controller 数据
因此,在您的示例中,您尝试使用两个静态帖子 id:1、id:2 为 Controller 播种。这可能是最好的done in the Route与 View 相反。
关于javascript - Ember.js:将项目添加到 ArrayController 而不先创建它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23410922/