Я пытаюсь обновить свой интерфейс на основе полученного списка из службы. Как это:
HTML часть:
<li *ngFor="let test of testsList" class="list-inline-item">
<div class="row m-row--no-padding align-items-center">
<div class="col">
<button
[disabled]="test.locked"
[ngClass]="{locked: test.locked, disabled: test.status == 1}"
(click)="selectTest(test)"
class="square"></button>
</div>
</div>
</li>
Где мой testsList
взят из обещания API и получен в ngOninit
:
this._myService.getAllTests().then((tests: TestDto[]) => {
this.testsList = tests;
}
Из дочернего компонента я хочу вернуться к этому компоненту (корневому) и нарисовать обновленный список тестов. Чтобы вернуться к родительскому компоненту, я использую router.navigate(...)
:
this._router.navigate(['app/tests/all']);
Фоновые данные обновляются, так как я могу проверить в базе данных и когда я обновляю страницу вручную. Но когда я перехожу к нему, пользовательский интерфейс не показывает изменения ...
Я пробовал несколько вещей, таких как это , это и пробовал также это , но я думаю, что я не реализовал это правильно ...
В качестве дополнительной информации прикрепляю структуру страниц:
/tests (root page)
|
(child pages)
|----> all
|---->description
|---->....
|---->summary
И я прыгаю с /all
на /summary
, я обновляю некоторые данные в /summary
, которые должны отображаться при переходе на страницу /all
.
Как я могу обновить пользовательский интерфейс или привязать значение, чтобы оно обновлялось при вызове страницы 'app/tests/all'
?
EDIT:
getAllTests() {
return new Promise((resolve, reject) => {
this._testsService.getAllTests().subscribe( (result) => {
this.tests = this.orderAsc(result.items);
resolve(this.tests);
}, error => {
console.log('No tests loaded from Database');
reject();
});
});
}