{ path: 'tabs/:tab', component: TabsComponent },
route.params.subscribe(({ tab}) => { ... })
ngOnChanges()
A callback method that is invoked immediately after the default change detector has checked data-bound properties if at least one has changed, and before the view and content children are checked.
this.postService.getPostByName(name).pipe(
mergeMap(post => forkJoin([
of(post),
this.postService.getTagsByPostId(post.id),
iif(() => post.hasComments(), this.getCommentsByPostId(post.id), of(null)),
]))
)
.subscribe(([post, tags, comments]) => {...})
addSafetySection() {
this.SafetyIncidents = this.SafetyIncidents.concat(new SafetyIncident());
// console.log("add new incedent");
}
Другой компонент, которому я передаю в качестве @Input простой объект не обновляется без вызова события!
(itemChange) = "item = $event"
) <ng-container *compile="template; context: { some_key: true }"></ng-container>
<ng-template [compile]="template" [compileContext]="{ some_key: true }">
<ng-container></ng-container>
</ng-template>
Основной вопрос: как передать объект чтобы он использовался в качестве compileContext? Ну или чтобы объект был передан как свойство compileContext
<ng-container *compile="template; context: myObject"></ng-container>
public changeObject() {
this.isDivShown = true;
setTimeout(() => this.changeClasses());
}
private changeClasses() {
this.el1.nativeElement.className = 'myCSSclass_1';
this.el2.nativeElement.className = 'myCSSclass_2';
}
<div [class.myCSSclass_1]="isDivShown">Element_1</div>
<div *ngIf="isDivShown" [class.myCSSclass_2]="isDivShown">Element_2</div>
<button (click)="isDivShown = true">Change the objects</button>
this.route.events.pipe(
map(() => this.route.currentUrlTree.root.children.primary.segments[1].path), // вместо 1 посмотреть ваш индекс
distinctUntilChanged(), // или можно ловить только NavigationEnd
map(path=> path === 'support')
)
this.route.routerState.snapshot.url
и содержит поток с текущей навигацией.