Ember钩子回调

时间:2016-01-19 20:11:22

标签: javascript ember.js

我有以下示例: http://emberjs.jsbin.com/zubahafutu/1/edit?html,js,output

route-action的想法来自@rwjblue。

单击该按钮会触发应用程序路径上的delete操作。我将一个函数作为参数发送给delete。这应该在删除发生之前运行。到目前为止很好,beforeDelete被调用,现在实际删除应该发生。我将performDelete函数作为参数传递,然后调用它。

问题

performDelete被调用时,它会丢失其上下文。 this指向window。我无法致电this.get('foo')

1 个答案:

答案 0 :(得分:1)

当您在this操作中的args.beforeDelete(this.get('performDelete'));中传递函数时,

delete会迷路。要解决此问题并确保在正确的上下文中调用performDelete,您可以执行以下两项操作之一:

args.beforeDelete(this.performDelete.bind(this));

或者:

args.beforeDelete(() => { this.performDelete(); });