我对于几乎没有javaScript经验的backbone.js很新。我在这里和那里尝试各种骨干教程。例如从本教程我试图学习
在上面的大多数教程中,他们使用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调试器会在库中出现各种错误,为什么?
答案 0 :(得分:8)
根据docs中指定的更改日志,版本$el
中添加了a cached jQuery (or Zepto) reference to the view's element
属性 - 0.9.0
。尝试将您正在使用的backbone
版本升级到0.9.0
或更高版本。它应该在那之后工作。
答案 1 :(得分:1)
您需要在视图中定义,如下所示
var ElementView = Backbone.View.extend({
el: $("#picker")
}