Javascript 到底是什么??
在许多教程中,我看到人们这样做:Javascript 到底是什么??,javascript,backbone.js,coffeescript,backbone-views,Javascript,Backbone.js,Coffeescript,Backbone Views,在许多教程中,我看到人们这样做: view = new Raffler.Views.EntriesIndex(collection: @collection) $('body').html(view.render().el) 然后在EntriesIndex看来,他做到了: render: -> @$el.html(@template()) 我认为使用@$el时会说:嘿,在父元素中呈现这个模板(在本例中是主体)…但是它不工作,也不显示任何内容…如果我使用$('body').html(
view = new Raffler.Views.EntriesIndex(collection: @collection)
$('body').html(view.render().el)
然后在EntriesIndex看来,他做到了:
render: ->
@$el.html(@template())
我认为使用@$el
时会说:嘿,在父元素中呈现这个模板(在本例中是主体)…但是它不工作,也不显示任何内容…如果我使用$('body').html(@template())
,所有工作都很好。
现在…为什么人们在教程中使用
@$el
(我在2-3个教程中看到过)?在主干中,视图通常存储对其元素的引用,并用jQuery包装。这通常被命名为This.$el
$
符号表示这不仅仅是一个DOM元素,而是一个完整的flegdedjQuery
实例。这意味着您可以调用像$el.find()
和$el.children()
这样的方法
在CoffeeScript中,
@
是此的快捷方式。所以@$el
的意思就是这个。$el
@$el=$(this.el)
,或多或少。好吧,但为什么在教程中他们会这样使用呢?比如,如果this.el是$('body')…它在默认情况下是一个简单的div标记…据我所知,在主干网中,将视图附加到现有DOM节点的想法绝对没有错,而且也没有绝对正确的方式来呈现视图。干什么就干什么,这就是主干网的魅力所在:它很灵活,可以满足您的需求,但对我来说,从头开始构建一个灵活、无关联的框架(如主干网)有点令人不安,这就是缺乏“一种真正的方式”来做各种事情。所以,当我以一种似乎有意义的方式做这件事时,我会有一种奇怪的感觉,就像我应该这样做吗?@chridam是的,但我只想了解为什么在许多教程中他们做了一些不起作用的事情……哦,它在控制台中是否显示了任何错误,比如未捕获的TypeError:Object#没有方法“html”
?