Backbone this.el未定义

Cod*_*kie 2 jquery backbone.js

我一直在关注我在youtube上找到的教程.https://www.youtube.com/watch?v=vPW1inIsln4

在教程中我没有看到他定义el:...但是他正在调用它.$ el它似乎正在工作.

在jsfiddle,我一直在跟随,但得到一个js错误说

Backone this.el未定义

http://jsfiddle.net/tga2La9L/

有人可以向我解释发生了什么吗?

<div id="canvas"/>

(function() {

var Rectangle = Backbone.Model.extend({});

var RectangleView = Backbone.View.extend({

    tagName: 'div',

    className: 'rectangle',

    render: function() {
        this.setDimensions();
        this.setPosition();
        return this;
    },

    setDimensions: function() {
        this.$el.css({
            width:this.model.get('width') + 'px',
            height: this.model.get('height') + 'px'
        });
    },

    setPosition() {
        var position = this.model.get('position');
        this.$el.css({
            left:position.x,
            top:position.y
        });
    }

});

var myRectangle = new Rectangle({
    width:100,
    height:60,
    position: {
        x:300,
        y:150
    }
});

var myView = new RectangleView({model: myRectangle});

$('div#canvas').append(myView.render().el);

})();
Run Code Online (Sandbox Code Playgroud)

nik*_*shr 7

您的小提琴使用的是Backbone的一个非常旧的版本0.3.3,可以追溯到2010年12月1日.更改为当前版本的Underscore(1.8.3)和Backbone(1.2.1)解决了错误

有关更新版本,请参见http://jsfiddle.net/nikoshr/tga2La9L/3/