我有这个简单的ion-segment
HTML
<ion-segment [(ngModel)]="type" (ionChange)="selectedTabChanged($event)">
<ion-segment-button value="a">a</ion-segment-button>
<ion-segment-button value="b">b</ion-segment-button>
</ion-segment>
<div [ngSwitch]="type">
<div *ngSwitchCase="'a'">
<ion-select #typeSelect (ionChange)="setMake($event)">
<ion-option value="x">x</ion-option>
</ion-select>
</div>
<div *ngSwitchCase="'b'">b</div>
</div>
JS
export class MyPage {
@ViewChild('typeSelect') typeSelect;
ionViewDidEnter() {
this.type = 'a';
}
selectedTabChanged($event): void {
console.log(this.typeSelect);
}
}
期望:
a
时,我希望得到this.typeSelect
b
时,我希望this.typeSelect
未定义,因为ion-select
仅在a
视图中但是我得到的价值倒退了。我认为当我点击b
时,它会从a
查找html,反之亦然。
有什么想法吗?
编辑:
看起来如果我在超时中包装更改它工作正常。但问题是,我不知道DOM元素通过un-hidden
ngSwitch
所需的链接
setTimeout(() => {
console.log(this.typeSelect);
}, 1000);