javascript - Hur man får åtkomst till klassmedlem från funktion i metodklass i typescript


Jag har den här TypeScript-koden:

    module MyPage {

    export class MyVm {

        ToDo : string;

        Load() {
            //can access todo here by using this:
            this.ToDo = "test";

            $.get("GetUrl", function (servertodos) {
                //but how do I get to Todo here??
                this.ToDo(servertodos); //WRONG ToDo..
            });
        }
    }
}

Frågan är, hur får jag åtkomst till todo-medlemsfältet i $.get-callbacken?

Svar #1

TypeScript stöder också pilfunktioner som bevarar lexikalisk scope. Pilfunktioner resulterar i liknande kod som Jakubs exempel men är snyggare eftersom du inte behöver skapa variabeln och justera användningen själv:

Här är exemplet som använder en arrow-funktion:

$.get("GetUrl", (todos) => {
    this.ToDo(todos);
});

Svar #2

På samma sätt som du gör det i javascript

export class MyVm {
    ToDo : string;

    Load() {
        //can access todo here by using this:
        this.ToDo = "test";
        var me = this;

        $.get("GetUrl", function (todos) {
            //but how do I get to Todo here??
            me.ToDo(todos); //WRONG ToDo..
        });
    }
}

Relaterade artiklar