2

私のタイトルは私が達成したいことをほぼ説明していると信じています.view.remove()を介してそれ自体を削除するイベントを持つバックボーンビューがあります

より正確に:

class Project.Views.MemberView extends Backbone.View
  template: JST['members/member_view']

  events:
    'click .destroy-member': 'removeMember'

  initialize: ->
    _.bindAll(this, "render")

  render: ->
    $(@el).html(@template(member: @model))
    this

  removeMember: ->
    @model.destroy
      data:
        collective_id: gon.collective.id
      contentType: 'application/json'
      success: =>
        @remove() #view.remove() called here

このview.remove()の呼び出しは期待どおりにうまく機能しますが、要素 (View) を DOM から即座に削除するため、ユーザー エクスペリエンスはあまり良くないと思います。

私が知る必要があるのは、この view.remove() への呼び出しを Jquery fadeOut() でラップまたはチェーンする方法がある場合です。私の意見では、これによりユーザーエクスペリエンスが大幅に向上します。

これは可能ですか?

乾杯!

4

2 に答える 2

1

fadeOut() には成功のコールバックがあります - @remove() 呼び出しにそれを使用することをお勧めします:

removeMember: ->
  @model.destroy
    data:
      collective_id: gon.collective.id
    contentType: 'application/json'
    success: =>
      $(@el).fadeOut(100, @remove())
于 2013-05-15T16:48:59.567 に答える