我有一个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 方法吗?

完整的示例可以在here中找到。

最佳答案

您可以将删除功能移至ArrayController。因为阵列 Controller 正在管理集合,所以这种方式很有意义。您拥有它的方式有效,但由于您的对象正在管理它所属的数组,因此看起来似乎并不正确,这似乎是一种尴尬的编写方式。

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

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

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

jsfiddle

09-26 13:41