在我看来,$ el未定义。为什么?

时间:2014-04-19 16:55:04

标签: backbone.js

var divElement = Backbone.View.extend({        
        initialize: function () {
            this.render();
        },          
        render: function () {                        
            $el.append("<ul id='ulList'></ul>"),
            wines.each(function (model) {
                $("#ulList").append("<li>" + model.winename + "</li>");
            });
            return this;
        }
    });

当我实例化我的视图时,我将$ el视为未定义...为什么会这样?默认情况下,el应为div

2 个答案:

答案 0 :(得分:1)

您需要添加“this”:

    this.$el.append("<ul id='ulList'></ul>"),

见这里:http://backbonejs.org/#View-render

似乎附加功能和html()一样。

答案 1 :(得分:1)

这是范围问题,在函数范围内JS不知道在哪里找到$ el变量,所以它认为它是未定义的,因为函数中没有明确定义的位置。但是,它定义在&#34; this&#34;对象,所以这个。$ el将返回元素。如果你在名为strict mode的东西中写javascript,那么这样的小错误就会被自动拾取。