2015-06-23 2 views
2

Я слежу за учебником, который я нашел на youtube. https://www.youtube.com/watch?v=vPW1inIsln4Магистраль this.el не определена

В учебнике я не вижу, чтобы он определял 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

Ваш Fiddle использует очень старую версию Backbone, 0.3.3, начиная с 1 декабря 2010 г. Переход к текущей версии подчёркивание (1.8.3) и Backbone (1.2.1) решает ошибку

http://jsfiddle.net/nikoshr/tga2La9L/3/ Смотреть для обновленной версии

Смежные вопросы