更改共享组件中的某些属性 - Angular 2

更改共享组件中的某些属性 - Angular 2

问题描述:

我有一个共享组件 - headerbarComponent - 带有属性 - headerTitle。我用它来显示哪一页是最新的。我需要改变这个标题depriding在一个加载的模板。 Onсe一个新的组件加载它调用的方法更改共享组件中的某些属性 - Angular 2

headerbarComponent.setTitle(newTile) { this.headerTitle = newTitle } 

它显示在JS控制台标题改变,但有一个在头以不变应万变。

<div>{{headerTitle}}</div> 

如何更改此标题?

您可以创建一个new Subject()一个服务,将“手表”进行任何修改:

@Injectable() 
export class HeaderService { 

    private headerTitleSubject: Subject<string> = new Subject<string>(); 

    constructor() { } 

    setTitle(title: string) { 
    this.headerTitleSubject.next(title); 
    } 

    onSetTitle() { 
    return this.headerTitleSubject; 
    } 
} 

共享组件需要订阅它,并更新你的标题:

this.headerService.onSetTitle().subscribe(
    newTitle => { 
     this.title = newTitle; 
    } 
); 

而最简单的部分是从任何你想要的组件更新这个标题:

updateTitle() { 
    this.headerService.setTitle('Home title'); 
} 

以下是一个工作示例:https://plnkr.co/edit/f8vmbd30K6tzBZyPFJLS?p=preview

+0

谢谢!只是医生呕吐! ))) –

+0

不客气。我很高兴听到这个消息;) –