我在使用Coffeescript的Backbone上的“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)
这很好用,但是我使用的是“self = @”语句,所以我可以使用类函数“renderArtist”,但是有一种更“优雅”的方式来做到这一点:“成功: - > self .renderArtist(艺术家)“,所以我可以避免使用”self = @“行?
像
这样的东西success: @->
@renderArtist(artist)
我不太确定,但我认为应该有办法做到这一点。 感谢
答案 0 :(得分:2)
这正是CoffeeScript中的double-arrow function所做的。它将生成您自动显示的代码,因此您无需自己编写代码。
success: =>
@renderArtist(artist)