簡體   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