私はtypescriptが新しくなっていますが、これは何よりもjavascriptの問題だと思います。具体的には、何かを達成する方法の理解が不足しています。コールバック関数のクラス変数を変更する
コールバックにクラスレベルの変数を設定する必要があります。その方法についてはわかりません。私のtypescriptクラスには、太い矢印の関数を持つメソッドがあります。コールバック関数を使用してajaxリクエストを行うオブジェクトを呼び出します。
このコールバックでは、クラスに値を設定したいと考えています。一言で言えば、これは私が持っているものされています。もちろん、コールバックで「これは」ウィンドウではなく、私のクラスを参照するため
class MyClass extends SomeOtherClass {
protected entity = new Entity();
protected getToolbar() {
toolbarbuttons.push({
title: 'hello',
onClick:() => {
outsideService.makeAjaxCall(
{
url: 'somewhere_in_cyberspace'
},
function (response) {
this.entity.name = response.Name;
}
);
}
});
}
}
このコードは、そのままでは動作しません。
私のonClickハンドラの前に_that = this
の行に沿って何かしようとしましたが、ハンドラが終了した後の応答値は得られません。this.entity.name
コールバックが設定したものではありませんか?私はここでやりたいことや何かを逃したことがありますか?
コールバックを矢印機能にしてみましたか?現時点では、 'this.entity.name = response.Name'のところにあるビットは'(response)=> {... 'のようなものではなく' function'宣言の中にあります。それは問題かもしれない – theRealRobG
私はそれを試してみるよ、ありがとう。 – jkj2000