ionic-team / ionic-team/ionic-framework

bug: popover height calculated incorrectly with popoverController + component

Đang mở
#30,320 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
triage
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/docs/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

v8.x

### Current Behavior

When creating a popover with the popoverController and an Angular component, the height of the popover is calculated before Angular's change detection cycle is run. This means that if you are passing content into the popover, the height will be calculated incorrectly and the popover will be positioned wrong.

This mainly shows up when putting the popover in a footer as the offset is calculated using the content height.

### Expected Behavior

Ionic shouldn't calculate the content height of the popover before a change detection cycle has run so that any height changes caused by component props will be reflected.

### Steps to Reproduce

```
const popover = await this.popoverController.create({
component: PopoverContentComponent,
componentProps: { message: "some multiline content" },
event: { target: element } as unknown as Event, // an element in a footer
});
```

```
import { Component, Input } from '@angular/core';
import { CommonModule } from '@angular/common';

@Component({
selector: 'popover-content',
standalone: true,
imports: [CommonModule],
templateUrl: './popover-content.component.html',
styleUrl: './popover-content.component.scss',
})
export class PopoverContentComponent {
@Input() message = '';
}
```
```


{{ message }}



```

### Code Reproduction URL

https://github.com

### Ionic Info

Ionic:

Ionic CLI : 7.2.0 (\AppData\Roaming\nvm\v18.20.3\node_modules\@ionic\cli)
Ionic Framework : @ionic/angular 8.2.7 (\node_modules\@ionic\angular)
@angular-devkit/build-angular : 18.2.12 (\node_modules\@angular-devkit\build-angular)
@angular-devkit/schematics : 18.2.12 (\node_modules\@angular-devkit\schematics)
@angular/cli : 18.2.12 (\node_modules\@angular\cli)
@ionic/angular-toolkit : not installed

Capacitor:

Capacitor CLI : not installed
@capacitor/android : 6.1.0 (\node_modules\@capacitor\android)
@capacitor/core : 6.1.0 (\node_modules\@capacitor\core)
@capacitor/ios : 6.1.0 (\node_modules\@capacitor\ios)

Utility:

cordova-res : not installed globally
native-run : not installed globally

System:

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

### Additional Information

_No response_

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.