我正在使用musale/angular2-stripe 一切正常,问题是我似乎无法从组件中获取价值。
openCheckout() {
this.disabled = true;
var handler = (<any>window).StripeCheckout.configure({
key: 'pk_test_tS0hXmE0hfvaaPytUdgRIdwD',
locale: 'auto',
token: function (token: any) {
debugger;
this.token = token;
//GET OUT FROM HERE< HTTP POST, EMMIT THE VALUE, ANYTHING!
debugger;
}
});
handler.open({
name: 'Demo Site',
description: '2 widgets',
amount: 2000
});
this.globalListener = this.renderer.listenGlobal('window', 'popstate', () => {
handler.close();
});
}
答案 0 :(得分:1)
问题似乎是因为您正在使用常规函数将this
范围更改为函数对象。
您可以在设置回调之前将另一个变量设置为this
,并使用它来保存令牌。
openCheckout() {
this.disabled = true;
let self=this;
var handler = (<any>window).StripeCheckout.configure({
key: 'pk_test_tS0hXmE0hfvaaPytUdgRIdwD',
locale: 'auto',
token: function (t: any) {
debugger;
self.token = t;
//GET OUT FROM HERE< HTTP POST, EMMIT THE VALUE, ANYTHING!
debugger;
}
});
或者我的首选方法是使用不绑定this
的{{3}},其值仍然属于该类。
openCheckout() {
this.disabled = true;
var handler = (<any>window).StripeCheckout.configure({
key: 'pk_test_tS0hXmE0hfvaaPytUdgRIdwD',
locale: 'auto',
token: (t: any) => {
debugger;
this.token = t;
//GET OUT FROM HERE< HTTP POST, EMMIT THE VALUE, ANYTHING!
debugger;
}
});