2017-09-13 92 views
0

我有两个不是孩子父母的组件。我的问题是,我可以做这样的事情:调用另一个组件中的一个组件的方法?

在组件2做到这一点:

constructor(private comp1:ComponentOne){ 
} 

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

组件也是一个'class',你可以通过创建它的'instance' – Rajez

回答

0

你可能砍的东西得到的东西的工作...但它是组件是如何的意思要使用的。

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

而是建立一个服务。服务的目的是提供可以被任何组件访问的代码。

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

这个例子说明如何共享数据,但你可以在这里分享的方法为好。

0

你需要一个service,可以在这两个组件的注入“通过他们的constructor。然后这两个组件都可以在它们自己内部与服务方法交互

0

不同组件可能使用的方法应该属于服务,然后可以将这些方法导入并注入到构造函数中,然后将方法调用为所需的方法。

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