網站搜尋

typescript - 我可以在 Angular 2 中將多個元件附加到一個類別物件上嗎?


我有兩個不同的輸入框範本和樣式,但它們基本上功能相同,並以相同方式存取後端數據。我希望這兩個範本能存取相同的函數。是否有方法可以將兩個組件附加到同一個類別,或允許一個組件存取另一個組件的函數?

@Component({
    selector: 'inputbox1',
    templateUrl: 'templates/Tnputbox1.html'
})
export class Inputbox1 { 
...
}

另一個選擇是為每個元件建立兩個具有相同程式碼的類別,或重寫所有模板和樣式。

答案#1

你可以建立一個抽象類別,並讓其他類別繼承它:

@Component({
    selector: 'inputbox1',
    templateUrl: 'templates/Tnputbox1.html'
})
export class Inputbox1 extends Inputbox { 
...
}

@Component({
    selector: 'inputbox2',
    templateUrl: 'templates/Tnputbox2.html'
})
export class Inputbox2 extends Inputbox { 
...
}

abstract class Inputbox { 
...your common functions
}