为什么这个.$el给出未定义的错误,但$(this.el)在Backbone视图的渲染函数中工作



我对backbone.js很陌生,javaScript经验很少。我正在尝试各种骨干教程找到这里和那里。例如,从这个教程中,我试图学习

backbone-baby-steps

在上面的大多数教程中,他们使用以下代码在Backbone.View.extend中设置html模板中的模型,然后渲染它,

render: function() {
    var tmpl = _.template(this.template);
    this.$el.html(tmpl(this.model.toJSON()));
    return this;
    }

但是当我在chrome调试器中运行代码时,它说这个this.$el是未定义的。我搜索了很多,但没有得到解决方案,然后我修改了自己的代码,它工作了,

$(this.el).html(tmpl(this.model.toJSON()));

我使用cdnjs托管库的骨干,下划线和jquery。

我想知道为什么互联网上的每个骨干教程都使用this.$el版本,但它不适合我?

而且,当我使用由教程提供的库(骨干,下划线等)文件而不是托管一个时,chrome调试器在库中给出了各种错误,为什么?

根据文档中指定的更改日志,$el属性- a cached jQuery (or Zepto) reference to the view's element0.9.0版本中添加。尝试将您正在使用的backbone版本升级到0.9.0或更高版本。

你需要在你的视图中定义如下

var ElementView = Backbone.View.extend({
    el: $("#picker")
}

最新更新