“初始化.ts”
platform.bootstrapModule(HomeModule);
“home.module.ts”
const appRoutes: Routes = [
{ path: 'home', component: HomeFeedComponent },
]
@NgModule({
bootstrap: [
HomeAppComponent,
HomeFeedComponent
],
export class HomeModule { constructor() { bootstrapComponents(UnrelatedComponent) } }
“home-app.component.ts”
export class HomeAppComponent {
public defaultUrl: string;
this.defaultUrl = '/' + 'home';
this.router.navigateByUrl(this.defaultUrl);
}
“home-feed.component.ts”
@Component({
selector: 'home-feed',
template: '../templates/home-feed.html'
})
export class HomeFeedComponent implements NgOnInit {
public display = false;
constructor() {}
public ngOnInit(): void {}
public clickyClick(): void {
this.display = true;
}
}
“home-feed.html”
<li class="message-tab"><a (click)="clickyClick()"
[ngClass]="{ 'active': display }">Message</a>
</li>
这是我的流程的基本实现。我最初是路由到我的 HomeFeedComponent,但是一旦我在我的初始路由上到达那里。即使 display 等于 true (我什至从组件控制台记录它)我的前端也不会呈现类“活动”,除非我添加this.ChangeDetectorRef.detectChanges();
到clickyClick
.
但是,当我在默认路由之后路由回该组件时,无需detectChanges
.
问题:所以我很想知道我在这里做错了什么,为什么我必须
detectChanges
在最初路由时手动触发?这是一个 Angular 错误还是我的逻辑有问题?
提前致谢!