我正在开发一个Angular4应用程序,我的主要问题是我在应用程序中有不同的组件,例如
<app-layout>
<app-component-1></app-component-1>
<app-component-2></app-component-2>
</app-layout>
现在我的问题是下一个问题,如果我点击组件-1中的某个元素,应该通知app-layout和组件2,当我点击组件2时,app-layout和component-1应该也被通知。
想象一下打开侧边栏并选择类别和子类别的方案。
答案 0 :(得分:3)
您有以下几种选择:
1)您可以使用@Input和@Output属性在父(app-layout)和子(component-1和component-2)之间进行通信。使用这种技术,孩子们每个人都必须与父母沟通,然后父母将任何信息传递给其他孩子。
我在这里有一个例子:https://blogs.msmvps.com/deborahk/passing-data-to-and-raising-an-event-from-a-nested-component/
2)您可以使用服务。 Angular中的服务是单例,这意味着它作为单个实例进行管理。因此,如果每个组件都访问该服务,他们将访问相同的共享数据。
我有一个使用服务进行沟通的示例:https://blogs.msmvps.com/deborahk/build-a-simple-angular-service-to-share-data/
答案 1 :(得分:1)
这个问题已被多次询问过。 你需要阅读角度教程: https://angular.io/guide/component-interaction
答案 2 :(得分:0)
您正在寻找的是service + rxjs。
这是一篇非常好的文章,如何做到这一点。