0

私は、spine.js アプリケーションと django restful バックエンドを使用しています。入力のキーアップ イベントの単純なバインディングは、特定のモデル レコードを updateAttribute しようとするコントローラーの関数を起動します。コントローラーで log.console を実行しましたが、updateAttribute に渡されるすべての値が正しく、レコードが実際に更新されているようです。ただし、アプリを実行すると、ファイルに渡される文字列全体ではなく、入力フィールドの最初 (または最初の数文字) だけでデータベース テーブルが更新されます。

なぜこれが起こっているのでしょうか?updateAttribute が文字列全体ではなく、最初の文字のみを取得してレコードを更新するのはなぜですか? 今日しばらくこのバグを修正しようとしていて、非常にイライラしています。

以下は、私のコードからの関連する抜粋です。

# below are my key bindings for keyup in my input fields and textareas 
events:
  'click a.social-tab' : 'selectTab'
  'keyup input' : 'updateDraggableText'
  'keyup textarea' : 'updateDraggableText'

# ...

# below are excerpts for my callback function
# below grabs the record to be updated
draggable = @parent.draggables()[index]

# update field attribute with value of txt
draggable.updateAttribute field, txt
4

1 に答える 1

0

いくつかの実験の後、Django バックエンドは、あまりにも多くの高速で頻繁な接続 (つまり、キーが押されるたびに 1 つの要求) の後、更新を含む PUT 要求を受け入れていないようです。今のところ、setTimeout で呼び出された updateAttribute をキューに入れ、参照 (戻り値) をグローバル変数に格納し、前の updateAttribute 要求が実行される前に別の updateAttribute 要求が要求された場合は clearTimeout を呼び出すことにより、フロント エンドでこれを修正しました。このようにして、入力中にレコードへの最後の (関連する) 更新のみが行われます。

于 2013-07-12T18:12:20.770 に答える