Ember CollectionView - 删除ItemView

时间:2013-01-10 19:54:13

标签: ember.js collectionview

我很难找到答案,所以也许我做错了。我有一个带有项目视图类的集合视图。每个项目都有一个删除按钮,它指的是动作“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> 
      ...
    "),
  })
});

编辑:

我找到了这个特殊问题的答案。集合视图上有一个属性需要由item类访问。我能够使用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);
  }
});

0 个答案:

没有答案