2013-01-21 3 views
1

오류가 발생합니다. '개체 [object Object]에 콘솔에'적용 '이 없습니다. "새 키워드를 생략한다 귀하의 의견 및 모델, 두 번째는 하려고해서는 안된다"를 선언 " http://jsfiddle.net/vineet85/AQx63/6/모델 변경시 백본보기가 새로 고침되지 않습니다.

var RefreshingView = new Backbone.View.extend({ 
    initialize: function() { 
     this.model.on('change', this.render, this); 
    }, 
    render: function() { 
     this.$el.html(this.model.get('text')); 
    } 
}); 

var m = new Backbone.Model({text: new Date().toString()}); 
var myView = new RefreshingView({model: m, el: 'body'}); 

myView.render(); 

setInterVal(function() { 
    m.set({text: new Date().toString()}); 
}, 1000); 

답변

2

귀하의 구문은 먼저, 조금 꺼져 .. 바이올린 참조하십시오 인스턴스화 " backbone.js 모델 직접적으로 대신

var RefreshingView = Backbone.View.extend({ 
     el: 'body', 

     initialize: function() { 
      this.model.on('change', this.render, this); 
     }, 
     render: function() { 
      this.$el.html(this.model.get('text')); 
     } 
    }); 

    var MyModel = Backbone.Model.extend({ 
     text: null 
    }); 

    var m = new MyModel({ text: new Date().toString() }); 
    var myView = new RefreshingView({ model: m, el: 'body' }); 

myView.render(); 

setInterval(function() { 
    m.set({ text: new Date().toString() }); 
}, 1000); 

Updated jsFiddle

+0

(1) 인스턴스화'Backbone.Model'의 witho 다음 시도 처음에는 그것을 확장하는 것이 귀찮은 일입니다. (2)'setInterVal' 함수가 없습니다. 'Backbone.View'를 확장 할 때 새롭다는 'AFAIK'가 진짜 문제입니다. –

+0

Backbone Models을 직접 사용해 보지 않는 것이 좋다고 생각했지만, 기본값 등을 필요로하지 않는다면 문제가되지 않을 것입니다. (setInterval에 대해서는 잘못 입력 한 것을 잡아 내지 못했고, 출력이 있다는 것을 알게 되 자마자 멈췄다.). 감사. – Jack

+0

확장되지 않은'Backbone.Model'을 사용하는 비 (非) 고의적 인 경우는 생각할 수 없지만 잘못된 것은 없다고 생각합니다. 나는 항상'var M = Backbone.Model.extend ({}) '라고 확신하지만 그것이 좋은 습관인지, 나쁜 습관인지 아니면 모범 사례인지는 모른다. –

관련 문제