ionic-team / ionic-team/ionic-framework

bug: Alert button handlers are executed outside the angular zone in certain cases

Đang mở
#29,071 3 bình luận 2 reaction 0 người được giao Xem trên GitHub
package: angular type: bug
Ngôn ngữ chính
TypeScript
Star
52.7k
Fork
13.3k
Merge trung bình
1 ngày 15 giờ
Pull request đã merge (30 ngày)
51

Mô tả

### Prerequisites

- [X] I have read the [Contributing Guidelines](https://github.com/ionic-team/ionic-framework/blob/main/.github/CONTRIBUTING.md#creating-an-issue).
- [X] I agree to follow the [Code of Conduct](https://ionicframework.com/code-of-conduct).
- [X] I have searched for [existing issues](https://github.com/ionic-team/ionic-framework/issues) that already report this problem, without success.

### Ionic Framework Version

v7.x

### Current Behavior

Button handlers of alerts seem to be executed outside the Angular Zone (at least in certain cases).

![ionic_bug_1](https://github.com/ionic-team/ionic-framework/assets/20710097/65ac129a-c767-4d63-9593-234fb444d966)

Strangely enough, when the page is loaded with device emulation, the issue does not seem to appear:

![ionic_bug_2](https://github.com/ionic-team/ionic-framework/assets/20710097/15a76892-fc86-4351-99d2-e0312a2d332d)

This is causing issues when calling angular related functions like trying to start navigation, since these must be called inside the angular zone.

### Expected Behavior

We would always expect a button handler to run inside the Angular Zone.

### Steps to Reproduce

1. Clone provided reproduction repository
2. npm run start
3. Open browser dev tools
4. Make sure device emulation is not enabled
5. Click the button on Tab 1
6. Click the button in the alert
7. Watch the dev console output

### Code Reproduction URL

https://github.com/Airdevelopments/ionic-alert-ngzone

### Ionic Info

Ionic:

Ionic CLI : 7.2.0 (C:\nvm\v18.16.0\node_modules\@ionic\cli)
Ionic Framework : @ionic/angular 7.7.2
@angular-devkit/build-angular : 17.2.0
@angular-devkit/schematics : 17.2.0
@angular/cli : 17.2.0
@ionic/angular-toolkit : 9.0.0

Capacitor:

Capacitor CLI : 5.7.0
@capacitor/android : not installed
@capacitor/core : 5.7.0
@capacitor/ios : not installed

Utility:

cordova-res : 0.15.4
native-run : 2.0.1

System:

NodeJS : v18.16.0 (C:\Program Files\nodejs\node.exe)
npm : 9.8.0
OS : Windows 10

### Additional Information

If you require any addtional information, please let me know.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.