繁体   English   中英

为什么这个。$ el给出了未定义的错误,但$(this.el)在Backbone视图中的render函数内部工作?

[英]Why this.$el gives undefined error but $(this.el) works inside render function in Backbone view?

我对于几乎没有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调试器会在库中出现各种错误,为什么?

根据docs中指定的更改日志, $el属性 - 在0.9.0版本中添加了a cached jQuery (or Zepto) reference to the view's element 尝试将您使用的backbone版本升级到0.9.0或更高版本。 它应该在那之后工作。

您需要在视图中定义,如下所示

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM