问题描述
我有这个组件,其中有一个名为plaidLinkSuccess的@output发射器,我正尝试在LinkHandler接口的onSuccess回调函数中发射它,如下所示。现在,我已经调试了它,它确实击中了onSuccess()中的发射器,但是PlaidComponent的父级什么也没捡到。
PlaidComponent.ts
@Component({
selector: 'test-plaid',templateUrl: './plaid.component.html',styleUrls: ['./plaid.component.scss'],})
export class PlaidComponent implements OnInit {
@Output()
static plaidLinkSuccess = new EventEmitter<any>();
@input()
plaidLinkToken: string;
plaidResponse = false;
env = 'sandBox'; // todo
handler: LinkHandler;
constructor() {}
ngOnInit() {
this.handler = Plaid.create({
clientName: 'JJInc',// todo
env: this.env,token: this.plaidLinkToken,product: ['auth'],onLoad() {},onSuccess(public_token,Metadata) {
console.log(public_token);
console.log(Metadata);
PlaidComponent.plaidLinkSuccess.emit({
publicToken: public_token,accountId: Metadata.account.id,});
},onExit(err,Metadata) {
console.log(err);
// The user exited the Link flow.
if (err != null) {
// bankAccountInfoPlaidComponent.logError(err);
}
},});
}
onPlaidClick(event) {
event.preventDefault();
event.stopPropagation();
this.linkHandler();
}
linkHandler() {
this.handler.open();
}
}
PlaidComponents的父HTML:
<ng-container *ngIf="isPlaid">
<test-plaid
[form]="plaidLinkToken"
[plaidLinkToken]="plaidLinkToken$ | async"
(plaidLinkSuccess)="plaidExchangetoken($event)"
></test-plaid>
</ng-container>
declarations.d.ts
declare const Plaid: PlaidLink;
interface PlaidLink {
create: (config: LinkConfig) => LinkHandler;
readonly version: string;
}
interface LinkHandler {
open: (institution?: string) => void;
exit: (config?: LinkHandlerExitConfig) => void;
}
interface LinkConfig {
clientName: string;
env: string;
forceIframe?: boolean;
isWebView?: boolean;
product: string[];
selectAccount?: boolean;
token?: string;
webhook?: string;
onLoad: () => void;
onExit: (error: LinkOnExitError,Metadata: LinkOnExitMetadata) => void;
onSuccess: (public_token: string,Metadata: LinkOnSuccessMetadata) => void;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)