javascript - Ember.js:将项目添加到 ArrayController 而不先创建它?

标签 javascript ember.js

我一次又一次被告知“永远不要在 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/

相关文章:

javascript - 带有文件索引的 Node.js 文件服务器

javascript - 我如何 "refire"jQuery(window).resize(checkSize)?

javascript - emberjs 将 class 或 id 添加到 body 标签

javascript - ember.js 是否仍然支持 ObjectController?如果不是,用什么代替它?

javascript - dc.js pieChart 切片移动

javascript - jQuery 移动一些文本

ember.js - 手动规范化 JSON

ember.js - Ember.js获取当前路线

javascript - Ember.js 过渡渲染错误或错误的路由

javascript - JS从字符串的最后一个中提取子字符串