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