2017-07-21 1 views
0

私は、Djangoのサーバーからtodosを取得するためにこれを使用するを使用して反応させ、コールバック関数this.getTodos()はサーバーから新しいデータをフェッチします。しかし、それはサーバー側が更新されていないようですか? enter image description hereは、jQueryのポスト+取得データ

画像では、最初のログは最初のデータフェッチからのものです。最後はコールバック関数からのものです。ここではあなたが成功する部分を掲示一度トリガする機能を渡す必要がありますが、関数が返す値を渡し、関数を渡していない

$.post("http://localhost:8000/todos/",{title:title,text:text},this.getTodos()); 

+0

ここではどのような質問がありますか? – Aby

+0

私は投稿をした後、サーバー側は新しいToDoを追加し、新しいToDosを返すように要求する必要がありますが、それでもまだToDosの古いバージョンが返されます。なぜですか? –

答えて

2

私は問題だと思うが、このラインであります()を使用して呼び出します。このようにして、この機能はポストコールと並行して呼び出され、ネットワーク部分をチェックすると同時に両方のコールが表示されます。

どちらかarrow functionを使用します。

$.post("http://localhost:8000/todos/", 
     {title:title,text:text}, 
     () => { 
      this.getTodos() 
     } 
); 

それとも、このようにそれを書く:

$.post("http://localhost:8000/todos/", 
     {title:title,text:text}, 
     this.getTodos 
); 

そしてコンストラクタでgetTodos方法バインド:

this.getTodos = this.getTodos.bind(this); 

は、より多くのためのDOCをチェックしますd etails。

関連する問題