从封闭ArrayController中删除对象的惯用法

时间:2013-06-21 11:51:26

标签: ember.js

我有一个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属性来实现这种行为。这是惯用的恩赐方法吗?

可以找到完整的示例here

1 个答案:

答案 0 :(得分:6)

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

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

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

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

jsfiddle