我正在准备项目,对不起但不能分享plunk或smthn,会尽力解释。正如您在左侧菜单中看到的那样,每当用户点击左侧菜单时,您在路径插座中显示的每个组件都会在init上更改部分名称,只需通过发出新的sectionName及其可见性如下所示:
{
name: 'Home',
isVisible: true,
}
并且有订阅者获取和更改部分名称及其可见性:
current_section: {} = {
name: 'Home',
isVisible: true,
};
this._dashboardService.current_section.subscribe(
(data) => {
this.current_section = data;
console.log(data);
}
);
//部分名称的模板面
<div *ngIf="current_section.isVisible" class="hide-on-print">
<h2 class="display-4">
{{current_section?.name}}
</h2>
<hr>
</div>
// router-outlet组件如何设置节名称(例如下面的主页)
ngOnInit() {
this._dashboardService.current_section.next({ name: 'Home', isVisible: true });
}
问题
每当路由更改为另一个组件时,它会将新值设置为section,但ui不会首次渲染。但是如果我从section_name的模板端删除ngif,如下面的
,它可以正常工作 //<div *ngIf="current_section.isVisible" class="hide-on-print">
<h2 class="display-4">
{{current_section?.name}}
</h2>
<hr>
//</div>
作为附加信息:
@angular/cli: 1.2.6
node: 6.10.3
os: darwin x64
@angular/cli: 1.2.6
@angular/common: 4.3.2
@angular/compiler: 4.3.2
@angular/compiler-cli: 4.3.2
@angular/core: 4.3.2
@angular/forms: 4.3.2
@angular/http: 4.3.2
@angular/platform-browser: 4.3.2
@angular/platform-browser-dynamic: 4.3.2
@angular/router: 4.3.2