3

我有一个管理一组对象的 ArrayController。我在此定义了一个 itemController,以便每个单独的对象都由另一个 ObjectController 管理:

App.IndexController = Ember.ArrayController.extend({
  itemController: "sampleModel"
});

在此 ObjectController 中,我有一个delete操作,旨在使用“父”ArrayController 从封闭数组中删除对象:

App.SampleModelController = Ember.ObjectController.extend({
  delete: function() {
    this.get("target.content").removeObject(this.get("content"));
  }
});

我不想拥有一个全局对象存储。我目前正在使用该target属性来实现这种行为。这是惯用的 ember 方法吗?

完整的例子可以在这里找到。

4

1 回答 1

6

您可以将删除功能移动到 ArrayController。这种方式很有意义,因为数组控制器正在管理集合。你拥有它的方式有效,但它似乎不正确,因为你的对象正在管理它所属的数组,这似乎是一种尴尬的编写方式。

App.IndexController = Ember.ArrayController.extend({
  itemController: "sampleModel",

  delete: function(object) {
    this.get('content').removeObject(object)
  }
});

App.SampleModelController = Ember.ObjectController.extend({});

jsfiddle

于 2013-06-21T12:31:56.427 回答