另一个组件中一个组件的调用方法?

时间:2017-09-13 18:03:26

标签: angular

我有两个不是子父母的组件。我的问题是我可以做这样的事情:

在组件2中执行此操作:

constructor(private comp1:ComponentOne){
}

save(){
this.comp1.methodComponentOne();
}

4 个答案:

答案 0 :(得分:0)

你可能会破解某些东西以使某些东西起作用......但它如何使用组件。

组件的目的是提供一个特定视图/ UI所需的数据(属性)和方法(功能)。因此,一个组件中永远不应该存在需要由另一个组件调用的代码。

相反,建立一个服务。服务的目的是提供可由任何组件访问的代码。

我在这里有一个例子:https://blogs.msmvps.com/deborahk/build-a-simple-angular-service-to-share-data/

此示例显示了如何共享数据,但您也可以在此处共享方法。

答案 1 :(得分:0)

您需要service通过constructor在两个组件中“注入”。然后,两个组件都可以与自身内的服务方法进行交互。

答案 2 :(得分:0)

这是services in Angular的目的。此外,RXJS可以协助在服务之间建立一些事件中心。

答案 3 :(得分:0)

可能由不同组件使用的方法应属于服务,然后可以将这些方法导入并注入构造函数,然后根据需要调用方法。

import { CustomService } from '../services/custom.service';
.
.
 constructor(
private customService:CustomService,
) { }
.
.    
this.customService.someMethod();