2016-04-22 29 views
1

我有兩個不同的模板和樣式的輸入框,但他們基本上以相同的方式運作,並以相同的方式訪問後端數據。我希望這兩個模板能夠訪問相同的功能。有沒有辦法將2個組件連接到一個類或允許一個組件訪問其他的功能?我可以在Angular 2中將多個組件連接到一個類對象嗎?

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

另一種選擇是創建兩個類,每個組件具有相同的代碼,或者重寫所有模板和樣式。

回答

4

您可以創建一個抽象類,擴展它的其他類:

@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 
} 
+0

會使得它可以切換模板對於給定的組件實例來回不失其狀態?我想要一個帶有可編輯視圖的單個對象和一個用戶可以在其間切換的只讀視圖。 –

+0

我剛發現您需要將抽象類聲明放在其他聲明之前,否則您將得到「錯誤:類型錯誤:無法讀取未定義(...)的屬性」原型「 –

相關問題