我有两个不是孩子父母的组件。我的问题是,我可以做这样的事情:调用另一个组件中的一个组件的方法?
在组件2做到这一点:
constructor(private comp1:ComponentOne){
}
save(){
this.comp1.methodComponentOne();
}
我有两个不是孩子父母的组件。我的问题是,我可以做这样的事情:调用另一个组件中的一个组件的方法?
在组件2做到这一点:
constructor(private comp1:ComponentOne){
}
save(){
this.comp1.methodComponentOne();
}
你可能砍的东西得到的东西的工作...但它是不组件是如何的意思要使用的。
组件的目的是提供一个特定视图/ UI所需的数据(属性)和方法(功能)。所以应该永远不会有一个组件中的代码需要被另一个组件调用。
而是建立一个服务。服务的目的是提供可以被任何组件访问的代码。
我这里有一个例子:https://blogs.msmvps.com/deborahk/build-a-simple-angular-service-to-share-data/
这个例子说明如何共享数据,但你可以在这里分享的方法为好。
你需要一个service
,可以在这两个组件的注入“通过他们的constructor
。然后这两个组件都可以在它们自己内部与服务方法交互
这就是services in Angular的目的。此外,RXJS可以协助在服务之间建立一些活动中心。
不同组件可能使用的方法应该属于服务,然后可以将这些方法导入并注入到构造函数中,然后将方法调用为所需的方法。
import { CustomService } from '../services/custom.service';
.
.
constructor(
private customService:CustomService,
) { }
.
.
this.customService.someMethod();
组件也是一个'class',你可以通过创建它的'instance' – Rajez