2017-09-13 99 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(); 
相關問題