Javascript 余烬钩回叫
我举了以下例子:Javascript 余烬钩回叫,javascript,ember.js,Javascript,Ember.js,我举了以下例子: 路由操作的思想来自@rwjblue 点击按钮触发应用程序路由上的delete操作。我将函数作为参数发送到delete。这应该在删除之前运行。到目前为止,很好,beforeDelete被调用,现在实际的删除应该发生了。我将performDelete函数作为参数传递,然后调用它 问题 调用performDelete时,它将丢失其上下文此指向窗口。我无法调用this.get('foo')当您在args.beforeDelete(this.get('performDelete'))中
路由操作的思想来自@rwjblue
点击按钮触发应用程序路由上的delete
操作。我将函数作为参数发送到delete
。这应该在删除之前运行。到目前为止,很好,beforeDelete
被调用,现在实际的删除应该发生了。我将performDelete
函数作为参数传递,然后调用它
问题
调用performDelete
时,它将丢失其上下文<代码>此
指向窗口
。我无法调用this.get('foo')
当您在args.beforeDelete(this.get('performDelete'))中传递函数时,此
将丢失代码>在删除操作中。要解决此问题并确保在正确的上下文中调用了performDelete
,可以执行以下两种操作之一:
args.beforeDelete(this.performDelete.bind(this));
或:
次要的一点是,尽管this.get('methodName')
可以工作,但更常见的情况是只说this.methodName
。
args.beforeDelete(() => { this.performDelete(); });