Tôi bắt đầu với góc 2, tôi có một bộ phận trẻ em "ChildCmp" khởi tạo và sau khi tôi cần phá hủy thành phần thông qua một nhấp chuột, chúng ta hãy nói:góc 2 - phá hủy thành phần con
@Component({
selector: 'main-cmp',
templateUrl: './main-cmp.html',
directives: [ChildCmp]
})
class MainCmp {
@ViewChild(ChildCmp)
childCmp: ChildCmp;
destroyChildClick(){
this.childCmp.destroy();
}
}
nhưng mã trước doesn 't chạy, phá hủy() là undefined và ngoại lệ là:
TypeError: this.childCmp.destroy is not a function
tôi đã đọc this thread và có đang sử dụng ViewContainerRef.createComponent(), thành phần tạo ra với điều này là một thể hiện của "ComponentRef", nhưng childCmp không có triển khai "ComponentRef".
Làm cách nào tôi có thể triển khai hoặc tiêm phương pháp tiêu diệt?
Cảm ơn tất cả!
chương trình này ở đâu và làm thế nào để bạn tạo ra một thành phần? – micronyks
Tại sao tiêu diệt khi bạn chỉ có thể '* ngIf'? – Harangue
@Harangue Tôi đã tạo các thành phần động bằng cách sử dụng ViewContainerRef.createComponent(), các thành phần khác được tạo từ mẫu, do đó tôi yêu cầu một dạng duy nhất để tiêu diệt. – Alexander