0

後で使用できる ajax コールバックでモデルにプロパティを設定しようとしていますが、これを実行できるかどうかわかりません。

var self = this;

$.ajax {
   self.views.someProperty = // something i get back from the server

}

その後、 で何かを行いthis.views.somePropertyます。現在、私は this.views.someProperty is undefined を取得しています。私はこれについて正しく行っているかどうか疑問に思っていました。

4

1 に答える 1

0

まず、あなたのコード スニペットはあまり意味がありません。 $.ajax()取得した結果の処理が完了したときにコールバック関数を呼び出しますが、コード スニペットはその適切な形式を示していません。

コールバック関数を適切に指定していると仮定すると、他に考えられる問題がいくつかあります。

  1. タイミング - ajax 呼び出しの結果は、完了コールバックが呼び出されるまで利用できません。これは、 が呼び出されてからしばらく後のこと$.ajax()です。結果は、 の直後に実行されるコードでは使用できません$.ajax()

  2. self.viewsすでに存在しますか?そうでない場合、設定self.views.somePropertyによってエラーが発生し、機能しません。

  3. this.views.someProperty後でアクセスするときは、それthisが正しい値であることを確認する必要があります。

console.log("ajax call finished")ajax 完了コールバックに を入れconsole.log("accessing someProperty")、値にアクセスしようとする直前に最初の項目を確認し、アクセスする前に ajax 完了が呼び出されることを確認できます。

デバッガーでデータを調べて、項目 2 と 3 を確認し、すべてが意図したとおりであることを確認できます。

于 2013-03-25T16:53:46.090 に答える