Angular - *ngIf 需要点击 "change" 屏幕 - ApplePayJS(?)
Angular - *ngIf require click to "change" screen - ApplePayJS (?)
我在使用 ApplePayJS 实现 Apple Pay 时遇到一个奇怪的错误。
支付完成后,有一个连接后台的功能。后端发送 return 表示付款一切正常。
紧接着我使用了一个函数,该函数负责使用 ngIf 更改“面板”。
与我在另一笔付款中使用的方法完全相同,在调试功能时一切正常,直到最后,即更改面板。
不幸的是,与其他支付方式不同,使用 ApplePayJS 您需要“物理地”单击任何元素以执行代码中的任何操作。它甚至可以是一个简单的复选框。然后在代码中完成的所有事情也在 UI.
中完成
我可以展示代码,但经过大量测试后,这与最终功能代码无关。
总结一下:
Apple Pay 按钮/支付激活=>
付款确认=>
调试执行时代码中的所有内容以及每个函数中的每个 console.log 都显示正确的值=>
UI 只有在与按钮/复选框等代码中的任何对象交互后才会发生变化
Apple Pay后的回调在ngZone外执行可能会出现。如果是这样,Angular 将不会检查更改。
为确保刷新视图,您可以:
- 在 this.ngZone.run(() => {...})
中执行回调代码
- 过程完成后调用 this.changeDetectorRef.detectChanges()
(ChangeDetectorRef 或 NgZone 是注射剂)
我在使用 ApplePayJS 实现 Apple Pay 时遇到一个奇怪的错误。
支付完成后,有一个连接后台的功能。后端发送 return 表示付款一切正常。
紧接着我使用了一个函数,该函数负责使用 ngIf 更改“面板”。
与我在另一笔付款中使用的方法完全相同,在调试功能时一切正常,直到最后,即更改面板。
不幸的是,与其他支付方式不同,使用 ApplePayJS 您需要“物理地”单击任何元素以执行代码中的任何操作。它甚至可以是一个简单的复选框。然后在代码中完成的所有事情也在 UI.
中完成我可以展示代码,但经过大量测试后,这与最终功能代码无关。
总结一下:
Apple Pay 按钮/支付激活=> 付款确认=> 调试执行时代码中的所有内容以及每个函数中的每个 console.log 都显示正确的值=> UI 只有在与按钮/复选框等代码中的任何对象交互后才会发生变化
Apple Pay后的回调在ngZone外执行可能会出现。如果是这样,Angular 将不会检查更改。
为确保刷新视图,您可以:
- 在 this.ngZone.run(() => {...}) 中执行回调代码
- 过程完成后调用 this.changeDetectorRef.detectChanges()
(ChangeDetectorRef 或 NgZone 是注射剂)