app模块和延迟加载模块之间的通信角度为4

时间:2018-05-03 16:01:05

标签: angular

enter image description here我在app模块中有一个布局页面(组件),我在其中显示标题文本。我有另一个懒惰加载的模块,我点击按钮,我正在更改文本值。

我只在app.module中提供服务并注入布局组件以及延迟加载模块的组件。   单击按钮,我将更新延迟加载模块组件中服务的societyName值。

我尝试了以下方法:

import { Subject } from 'rxjs/Subject';
@Injectable()
export class DataSharingService {   
     private societyName = new Subject<string>();
     societyNameObservable$ = this.societyName.asObservable();
     updateSocietyName(societyName: string) {
        this.societyName.next(societyName);
    }
}

布局页面中没有发生订阅。

this.dataSharingService.societyNameObservable$.subscribe(value=>{
      console.log(value);
    })

所以,我找到了非延迟加载模块的解决方案。 如果有人有任何想法,请告诉我。提前谢谢。

我想点击切换按钮切换社会名称。切换页面是延迟加载模块的一部分, Keerthi Gardenia 文本来自布局页面,这是app模块的一部分。  目前我通过页面重新加载来实现这一目标,这不是最佳选择。

1 个答案:

答案 0 :(得分:1)

这对你有用吗?

export class DataSharingService {   
     private societyName = new Subject<string>();

     updatedSocietyValue() {
       return this.societyName.asObservable();
     }

     updateSocietyName(societyName: string) {
        this.societyName.next(societyName);
    }
}

布局页面

  this.dataSharingService.updatedSocietyValue().subscribe(value=>{
      console.log(value);
    })