Добавить подписку на свойство конфигурации страницы в угловых / ионных - PullRequest
0 голосов
/ 02 апреля 2020

Мне нужна возможность добавить свойство, которое имеет «горячее» значение (подписка), чтобы при выполнении условия ставить галочку в пункте меню.

У меня все работает, делая это, но что-то кажется мне немного излишним в моем решении ...

Субъект поведения

//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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...