Мне нужна возможность добавить свойство, которое имеет «горячее» значение (подписка), чтобы при выполнении условия ставить галочку в пункте меню.
У меня все работает, делая это, но что-то кажется мне немного излишним в моем решении ...
Субъект поведения
//setup in the declarations
completedAssessments$ = new BehaviorSubject([]);
//in app init listening for changes to an array of completed assessments.
this.assessmentService.completedAssessments$.subscribe(res => { this.completedAssessments$.next(res); });
Настройка маршрута
this.pages.push({
title: 'General Experience',
url: '/general-experience',
icon: 'reader',
step: true,
completed: () => this.completedAssessments$.value.indexOf('generalExperience') > -1 //HELP! is there a better way to do this instead of making it a function like this? its the only way i could get it to be "HOT"
});
Значок появляется, когда вынужденный возвращает true
<ion-item button [routerLink]="p.url" routerDirection="root" lines="none" detail="false" [class.selected]="selectedIndex == p.url"
*ngIf="(!p.children || p.children.length == 0)" [class.ion-hide]="!!p.hide && p.hide()">
<ion-icon slot="start" [ios]="p.icon + '-outline'" [md]="p.icon + '-outline'"></ion-icon>
<ion-label>{{ p.title }}</ion-label>
<ion-icon *ngIf="p.step && p.completed()" color="success" name="checkmark-outline" slot="end"></ion-icon>
</ion-item>