ค้นหาเว็บไซต์

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
}