Javascript 如何将值从一个组件传递到另一个组件角度2(无父子关系)

Javascript 如何将值从一个组件传递到另一个组件角度2(无父子关系),javascript,angular,typescript,Javascript,Angular,Typescript,嗨,我有两个组件,组件1和组件2。我有一个值,比如说x,我想把这个值传递给我应用程序中的一个组件,两者都没有父子关系,也没有任何关系。如何在component2中获取在component1中设置或创建的值x?我知道我可以使用本地存储设置值,并可以随时随地访问。除此之外还有其他方法吗?对不起,我是新来的。有什么想法吗,伙计们?提前谢谢。 目前我在组件1中所做的工作: window.localStorage.setItem('myVal', JSON.stringify(x)); 在我的组件2中:

嗨,我有两个组件,组件1和组件2。我有一个值,比如说x,我想把这个值传递给我应用程序中的一个组件,两者都没有父子关系,也没有任何关系。如何在component2中获取在component1中设置或创建的值x?我知道我可以使用本地存储设置值,并可以随时随地访问。除此之外还有其他方法吗?对不起,我是新来的。有什么想法吗,伙计们?提前谢谢。 目前我在组件1中所做的工作:

window.localStorage.setItem('myVal', JSON.stringify(x));
在我的组件2中:

let getmyVal: any = JSON.parse(localStorage.getItem("myVal"));

由于组件之间没有关系,最简单的方法是使用发布者-订阅者模型。任何组件都可以发布任何消息,并且任何其他组件都可以使用可观察到的消息订阅所述消息

下面是我们在一个应用程序中创建的示例警报服务

从“@angular/core”导入{Injectable}; 从“rxjs”导入{Observable}; 从'rxjs/Subject'导入{Subject}; @注射的 导出类警报服务{ 私人科目=新科目; 建造师{ } AlertType:string,objData:any{ this.subject.next{type:alertType,data:objData}; } getMessage:可观察{ 返回this.subject.asObservable; }
}为什么不使用服务呢?你可以使用定制服务或$broadcat Methodsorry,它不是父子组件,我也不想使用@output,因为不涉及模板,你基本上需要创建一个服务并订阅它。请阅读服务是否已注册?在AppModule中?