在许多教程中我看到人们这样做:
view = new Raffler.Views.EntriesIndex(collection: @collection)
$('body').html(view.render().el)
然后在EntriesIndex视图中他做了:
render: ->
@$el.html(@template())
我认为用@$el
说:嘿,在父元素中渲染这个模板(在这种情况下是它的主体)......但是它不起作用而且没有显示任何东西......如果我使用$('body').html(@template())
而是一切正常。
现在......为什么人们在教程中使用@$el
(我在2-3篇教程中看过这个)?
答案 0 :(得分:4)
在Backbone中,视图通常存储对其元素的引用,包含在jQuery中。这通常命名为this.$el
。
$
符号表示这不仅仅是一个DOM元素,而是一个完整的jQuery
实例。这意味着您可以调用$el.find()
和$el.children()
等方法。
在CoffeeScript中,@
是this
的快捷方式。因此@$el
意味着this.$el
。