2015-06-23 27 views
2

我一直在跟着我在YouTube上找到的教程。 https://www.youtube.com/watch?v=vPW1inIsln4Backbone this.el undefined

在教程中,我没有看到他定义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); 

})(); 

回答

7

你的小提琴使用一个很老的版本骨干,0.3.3的,从12月1日,2010年约会更改为当前版本下划线(1.8.3)和骨干(1.2.1)解决了错误

http://jsfiddle.net/nikoshr/tga2La9L/3/更新版本

相关问题