我想分享的服务组件,对于这一点,我已经创建service.ts其中代码如下:角2 - 共享服务在负载
import { Subject } from 'rxjs/Subject';
export class CommonService {
CommonList = new Subject<any>();
}
当然,这项服务是供应商列表中的app.module.ts 然后,我有一个组件边栏。 从侧边栏组件我想要订阅此服务:
ngOnInit() {
this.subscription = this.CommonServicePrivate.CommonList.subscribe(
(result: any) => {
console.log(result);
}
);
}
这是问题所在,如果我尝试在此服务的app.component.ts通过一些方法添加一些列表:
click(){
this.CommonService.CommonList.next([{"some_key":"some_value"}]);
}
这实际上有效,但是当我尝试这个时:
ngOnInit(){
this.CommonService.CommonList.next([{"some_key":"some_value"}]);
}
它不起作用。
问题是我想将此服务传递给加载应用程序上的组件。
在ngAfterViewInit的情况下,当我试图这样的结果使一些模板,我得到错误: ExpressionChangedAfterItHasBeenCheckedError:它检查后表达发生了变化。先前的值:'未定义'。当前值:
如果有人有这样的经历,请你分享给我。 谢谢。
我猜你正在寻找您需要的组件右侧数据的组件加载之前路由器的决心? –
叶氏,因为有关补充工具栏的信息从REST API来了,我需要自动加载它,但还有一点就是这个侧边栏,我应该在另一个组件加载以及,所以我真的不希望两次调用这个API,解决方案是,我将其存储在服务,从元器件我会调用这个服务,但问题是,正如我所说:通过它的工作方法,但onload事件 - 它不工作,有时给我错误: 例外:表达发生了变化检查完毕后。 –