angular2-如何在两个单独的组件之间进行通信?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了angular2-如何在两个单独的组件之间进行通信?相关的知识,希望对你有一定的参考价值。

我正在从事这个angular2项目。 我有2个组件,即WorkspacesComponent & PagesComponent

在数据库中,每个工作区都包含页数。 我写了下面的代码来填充workspacesComponent中的工作区列表和PagesComponent中的页面列表。

从数据库获取工作区

 this.workspaceService.getAllWorkspaces(this.baseUrl)
        .subscribe((workspaces) => 
            this.workspaces = workspaces;
            console.log(this.workspaces);
        
        );

从数据库获取页面

this.pagesService.getAllpages(this.baseUrl)
        .subscribe((pages) => 
            this.pages = pages;
            console.log(this.pages);
        
        );

到目前为止,他们向我返回了正确的数据。但是我要实现的功能是,我将在workspaceComponent中选择工作workspaceComponent ,并且该工作区中的所有页面仅应在pagesComponent列出。

预期结果

也就是说,单击工作区时,其索引可以传递给以下方法。

getPagesByWorkspaceId(index:string)
    console.log(index);

并且此方法将相应地加载该工作空间中的页面列表。 问题是我不确定如何从WorkspacesComponent调用PagesComponent的方法

有输入吗?

答案

对于不在直接父子关系中的组件之间的通信,请使用共享服务共享数据并进行通信。

有关更多信息,请参见https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service

另一答案

如果两个组件之间没有关系(父/子),则需要利用共享服务。

有关更多详细信息,请参见此问题:

角度文档中的此链接还可以帮助您:

以上是关于angular2-如何在两个单独的组件之间进行通信?的主要内容,如果未能解决你的问题,请参考以下文章

两个Angular2组件之间的通信问题

typescript Angular2在兄弟组件之间进行通信

typescript Angular2在兄弟组件之间进行通信

关于Angular2组件通信---自己的一点总结

如何在两个子 Angular2 组件之间共享父 HTML?

angular2中,如何让子组件相互通信?