我有兩個不是孩子父母的組件。我的問題是,我可以做這樣的事情:調用另一個組件中的一個組件的方法?
在組件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