簡體   English   中英

從函數的派生類訪問基本成員

[英]Accessing base member from derived class in function

我已經創建了Angular2 + Typescript項目。 我有很多表,所以我想擁有一些像基本組件這樣的東西。

有我的基本組成部分:

export abstract class ManagementComponent<T> implements BaseComponent {

    protected selectedItem: T;

    protected items: Array<T>;

}

現在有我的孩子部分。 我想從http獲取所有項目,然后將其分配給基類

export class CompetencesComponent extends ManagementComponent<Competence> implements OnInit {

    thisField: string;

    constructor(private service: CompetencesService) {
        super();

    }

    ngOnInit(): void {
        this.getCompetences();
    }

    private getCompetences() {
        this.service.getCompetences().subscribe(function (competences: Array<Competence>) {
            this.thisField // ok
            this.items  // not ok            
        })
    }
}

知道如何從訂閱方法訪問基本字段嗎?

目前,我希望您無法引用thisFielditems ,因為您應該在訂閱函數中丟失this上下文。

您可以切換到箭頭功能以保留上下文:

this.service.getCompetences().subscribe((competences: Array<Competence>) => { ... }

您可以如下設置父類的能力列表:

    private getCompetences() {
            var self = this;
            this.service.getCompetences().subscribe(function (competences: Array<Competence>) {
                this.thisField // ok
                self.items =  competences; // not ok          
            })
        }

您無法通過this綁定訪問items屬性的原因是范圍。 在回調內部, this綁定綁定到其他對象,並且您松開了上下文。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM