angular - 如何在角度中使用点击和地图
问题描述
我从后端获得一个 url,我想从我的 angular 项目中重定向到它,但不知道如何去做。
public createPaymentMethod(paymentMethodDto: any): Observable<any> {
return this.http.post<any>(ConfigService.Configuration.apiUrl + `/payments`, paymentMethodDto)
.pipe(
tap((result: TpayData) => console.log(result)),
// in the result log i have a field with name 3durl and clientAUth etc
map(res => res._3dsUrl ),
tap(_3dUrl => console.log(_3dUrl))
);
}
async addPaymentMethod(): Promise<void> {
const encrypted = this.encrypt();
this.paymentForm.controls['creditCard'].setValue(encrypted);
const loader = await this.loaderService.showLoader();
this.paymentApiService.createPaymentMethod(this.paymentForm.value)
.subscribe((payment) => {
console.log("expect" + payment)
this.close(payment);
this.loaderService.successMessage();
},
(error) => this.loaderService.errorApiMessage(error)
);
await loader.dismiss();
}
我要检查的是 3duRl 是否不为空,然后重定向到这个 url,如果它为空,那么我将处理返回的响应中的其他值。目前我不确定如何将 url 带入异步 addPaymentMethod 并在可用时重定向到它
解决方案
在您的构造函数中,请导入 Angular 提供的路由器服务:
private router: Router
然后:
async addPaymentMethod(): Promise<void> {
const encrypted = this.encrypt();
this.paymentForm.controls['creditCard'].setValue(encrypted);
const loader = await this.loaderService.showLoader();
this.paymentApiService.createPaymentMethod(this.paymentForm.value)
.subscribe((payment) => {
If(payment) {
this.router.navigateByUrl(payment)
console.log("expect" + payment)
this.close(payment);
this.loaderService.successMessage();
}
},
(error) => this.loaderService.errorApiMessage(error)
);
await loader.dismiss();
}