如何从Javascript回调方法调用Typescript方法-Angular2
我使用的是angular2,我的问题是我无法从javascript回调调用组件方法。这里是代码片段如何从Javascript回调方法调用Typescript方法-Angular2,javascript,angular,typescript,Javascript,Angular,Typescript,我使用的是angular2,我的问题是我无法从javascript回调调用组件方法。这里是代码片段 declare var CORE_FACTORY:any; // CORE_FACTORY Defined in javascript file which I've included in index.html and it's gets loded perfectly. let coreApi = CORE_FACTORY.setupApiByDomain(Domain.QA);
declare var CORE_FACTORY:any;
// CORE_FACTORY Defined in javascript file which I've included in index.html and it's gets loded perfectly.
let coreApi = CORE_FACTORY.setupApiByDomain(Domain.QA);
coreApi.addUserEventListener(apiName, ApiEvent.ON_ANY_EVENT,this._userCallBack);
coreApi.callApi(request, this.afterCallApi);
afterCallApi(status, responceObject) {
this.postCreateInstrument(accountNumber); //Getting error right here.
}
public postCreateInstrument(accountNumber:string) {
alert('test');
}
访问全局
此
的一种方法是像这样使用绑定
:
coreApi.callApi(request, this.afterCallApi.bind(this, status, responceObject));
现在这段js代码coreApi.callApi(request,this.afterCallApi)正如您所知,code>将调用this.afterCallApi
,但请注意,您使用的函数没有paradensis(),这意味着this.afterCallApi
将作为callApi
的内部函数调用,而callApi
的内部this
绑定到afterCallApi
如果要测试它,请执行console.log(this)代码>内部afterCallApi
与原始代码。您将看到this
是一个对象,而不是全局this
为了“访问”afterCallApi,我们只需绑定this
,它是指全局this
另外,请查看这篇文章以了解更多信息:如果您使用箭头格式定义函数,它将为您保留此
的范围
例如:
var afterCallApi = (status, response) => { this.postCreateInstrument(accountNumber); }
最后都是JavaScript;TypeScript在浏览器解释之前编译(从技术上讲是透明文件)为JavaScript。