我有以下示例: http://emberjs.jsbin.com/zubahafutu/1/edit?html,js,output
route-action
的想法来自@rwjblue。
单击该按钮会触发应用程序路径上的delete
操作。我将一个函数作为参数发送给delete
。这应该在删除发生之前运行。到目前为止很好,beforeDelete
被调用,现在实际删除应该发生。我将performDelete
函数作为参数传递,然后调用它。
问题
当performDelete
被调用时,它会丢失其上下文。 this
指向window
。我无法致电this.get('foo')
。
答案 0 :(得分:1)
this
操作中的args.beforeDelete(this.get('performDelete'));
中传递函数时, delete
会迷路。要解决此问题并确保在正确的上下文中调用performDelete
,您可以执行以下两项操作之一:
args.beforeDelete(this.performDelete.bind(this));
或者:
args.beforeDelete(() => { this.performDelete(); });