【问题标题】:Ember.js: Adding item to an ArrayController without creating it first?Ember.js:将项目添加到 ArrayController 而不先创建它?
【发布时间】:2014-05-01 23:55:26
【问题描述】:

我一次又一次地被告知“永远不要在控制器/ObjectController 上使用.create(),因为 Ember 会为 [我] 做这件事”。我对如何在不先创建它的情况下将项目添加到 ArrayController 感到困惑。

在我的例子中,我使用 Controller(不是 ObjectController)作为 ArrayController 的 itemController,因为它不受 AJAX 加载数据的支持(...这是正确的用法吗?)。我想将我的 itemController 的一个实例添加到 ArrayController,但如果不先创建要添加的项目,我无法弄清楚如何做到这一点。

JSBin 在这里: http://emberjs.jsbin.com/momikuto/17/edit

TL;DR:如果没有 addPost 函数中的 .create(),我不知道如何将 Post 对象添加到 ArrayController。

【问题讨论】:

    标签: javascript ember.js


    【解决方案1】:

    模型与控制器

    我认为这里的主要混淆在于模型和控制器之间。控制器可以decorate a model 添加显示属性,但不是主要数据对象。

    模型可以是简单的 JSON 对象,也可以是成熟的 ember-data。

    所以,是的,Ember 会为您创建控制器。并且您以某种方式为控制器指定模型(见下文)。

    设置控制器数据

    因此,在您的示例中,您尝试使用两个静态帖子 id:1、id:2 为控制器播种。这可能是最好的done in the Route,而不是视图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      相关资源
      最近更新 更多