22

私はこのタイプスクリプトコードを持っています:

    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..
            });
        }
    }
}

問題は、$。getコールバックのtodoメンバーフィールドにアクセスするにはどうすればよいですか?

4

3 に答える 3

31

TypeScriptは、字句スコープを保持する矢印関数もサポートしています。矢印関数は、Jakubの例と同様のコードになりますが、変数を作成して使用法を自分で調整する必要がないため、より適切です。

矢印関数を使用した例を次に示します。

$.get("GetUrl", (todos) => {
    this.ToDo(todos);
});
于 2012-11-17T15:30:23.650 に答える
11

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..
        });
    }
}
于 2012-11-17T13:22:05.670 に答える
1

フェントンは正しいです。

ただし、これを行うこともできます。

 mycallback(todos, self) { self.todo(todos)); }
 $.get('url', mycallback(todos, this));
于 2019-02-04T21:49:12.370 に答える