0

Backbone with Coffeescript の "this" 参照に問題があります。これは、アーティストの情報を表示するメソッドです。

show: (id) ->
    self = @
    if @collection
        artist = @collection.get(id)
        @renderArtist(artist)
    else
        artist = new DemoBackbone.Models.Artist({id: id})
        artist.fetch
            success: ->
                self.renderArtist(artist)

renderArtist: (artist) ->
    view = new DemoBackbone.Views.ArtistsShow(model: artist)
    $('#content_artists').html(view.render().el)

これは完全に機能しますが、クラス関数「renderArtist」を使用できるように「self = @」ステートメントを使用していますが、「success: -> self.renderArtist(artist )」なので、「self = @」行の使用を避けることができますか??

何かのようなもの

success: @->
    @renderArtist(artist)

よくわかりませんが、これを行う方法があるはずだと思います。ありがとう

4

1 に答える 1

2

これはまさに、CoffeeScriptの二重矢印関数が行うことです。表示されたようなコードが自動的に生成されるため、自分で記述する必要はありません。

success: =>
    @renderArtist(artist)
于 2013-04-20T20:01:02.220 に答える