0

我很难找到答案,所以也许我做错了。我有一个带有项目视图类的集合视图。每个项目都有一个删除按钮,它指的是动作“removeItem”。这确实删除了该项目,但我需要参考集合视图内容,以便通过 API 调用发布更新后的数组。

App.WatchlistTilesView.Collection = Ember.CollectionView.extend({
  tagName: "ul",
  itemViewClass: Ember.View.extend({
    attributeBindings: "role",
    role: "tile",
    classNames: ["tile"],

    removeItem: function() {
      this.remove();
    },

    templateStock: Ember.Handlebars.compile("
      <button {{action removeItem}}>Delete</button> 
      ...
    "),
  })
});

编辑:

我找到了这个特定问题的答案。集合视图上有一个属性需要由项目类访问。我可以使用 this.get("parentView") 访问它。此外,我必须将视图添加为 removeItem 操作的目标。

它看起来像这样:

App.WatchlistTilesView.Collection = Ember.CollectionView.extend({
  tagName: "ul",
  itemViewClass: Ember.View.extend({
    attributeBindings: "role",
    role: "tile",
    classNames: ["tile"],
    watchlistBinding: "parentView.watchlist"

    removeItem: ->
      @remove()
      watchlist = @get("watchlist")
      @get("controller").removeSymbol(@content, watchlist)

    templateStock: Ember.Handlebars.compile("
      <button {{action removeItem target="view"}}>Delete</button>
      ...
    "),
  })
});

App.WatchlistTilesController = Ember.Controller.extend({
  account: null,
  watchlists: null,

  removeSymbol: function(entry, watchlist) {
    watchlist.entries.removeObject(entry);
    return WatchlistService.edit(this.account, watchlist);
  }
});
4

0 回答 0