У меня есть пользовательский компонент трубы, которому требуется труба async
вместе с ним для возврата вывода.Он работает во всем приложении без проблем.
Однако при использовании пользовательского компонента вместе с async pipe
в ion-select
при начальной загрузке в выбранном параметре отображается ноль [1], пока вы не откроетеионный выбор, а затем он заполняет все правильные выходы [2].
! [при открытии модального окна данные отображаются как ноль] [1]
![щелчок по выбору ion-select преобразует данные соответствующим образом] [2]
Я снял каналы, чтобы посмотреть, загружается ли начальная информация в программу ion-select, и да, данные есть.Это только возвращает ноль, когда каналы также реализованы.
Я передаю объект 'item' через navParams
этому модалу.
Я должен использовать async pipe
вместе сэтот модальный, так как пользовательский канал ожидает получения данных, возвращаемых в качестве обещания, прежде чем он сможет их преобразовать.
item-detail.html
<div *ngIf="item.variantGroup.variants.length > 1" class="w-100">
<p padding-left><b>{{ item.variantGroup.name }}</b></p>
<ion-select [(ngModel)]="item.selected.variant" [selectOptions]="{title: 'Choose an option'}" required class="w-100">
<ion-option *ngFor="let v of item.variantGroup.variants" [value]="v">{{ v.name + ' (' + ( v.price | enhancedCurrency | async ) + ')' }}
</ion-option>
</ion-select>
</div>
extended-currency.ts (pipe)
transform(value: any, symbol: string) {
let countryCurrency: string;
return this.userProvider.getCountry().then((data: string) => {
!symbol ? countryCurrency = UtilitiesProvider.getMetadataOfCountry(data).currency : countryCurrency = symbol;
return this.cp.transform(_.round(value / 100, 2), countryCurrency, 'symbol-narrow');
});
Ожидаемый результат должен показывать цену, сразу же измененную при модальном открытии.
Таким образом, в приведенном выше примере изображений будет показано $ 3,50, а не ноль.