我有两个不是子父母的组件。我的问题是我可以做这样的事情:
在组件2中执行此操作:
constructor(private comp1:ComponentOne){
}
save(){
this.comp1.methodComponentOne();
}
答案 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();