Backbone this.el未定义

时间:2015-06-23 14:57:39

标签: 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);

})();

1 个答案:

答案 0 :(得分:7)

你的小提琴使用的是一个非常古老的Backbone版本0.3.3,可以追溯到2010年12月1日。更改为当前版本的下划线(1.8.3)和Backbone(1.2.1)解决了错误

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