1

何が問題なのか理解できません。

コレクションにモデルを渡すバックボーン コレクションで remove メソッドを呼び出すと、コレクションが更新され、削除されたモデルが表示されませんが、IE9 ではページを手動で更新するまで更新されません。

IE9 で console.log コレクションをしようとすると、未定義になりました。

IE10+ および他のすべてのブラウザーでは、これは問題なく機能します。

私はrequirecsを使用してcoffeescriptでbackbone.marionetteを使用しています。

ここにサンプルがあります:

delete: ->
  @deleteDeferred = $.Deferred()
  vent.trigger 'modal:', name: 'deleteConfirm', modalSize: '', model: @
  promise = @deleteDeferred.then =>
    xhr = $.ajax
      url: "/api/v1/user-contact-data/#{@id}"
      dataType: 'json'
      type: 'DELETE'

  promise.done =>
    @collection.remove(@) if @collection

  promise.always =>
    delete @deleteDeferred

  promise

これについてのアイデアはありますか?

ありがとう。

4

2 に答える 2

1

IE9 があなたの ajax リクエストをキャッシュしているようです (面白くない =/)

これを試して:

$.ajaxSetup({ cache: false });

これにより、「キャッシュバスター」クエリパラメーター (ミリ秒のタイムスタンプ) が追加され、各 ajax リクエストが一意になるようになります。

于 2013-10-30T21:33:32.307 に答える
0

モデルで直接 destroy メソッドを使用できるのに、なぜ promise と XHR 呼び出しを作成するのか知りたいです。例えば:

# This will automatically call "/api/v1/user-contact-data/#{@id}", using the verb 
# DELETE, fire the appropriate events, 
# and remove it from any collection(s) the model is attached to
@model.destroy success: =>
    vent.trigger 'delete:successful'
于 2013-10-30T06:37:59.533 に答える