2012-09-11 4 views
1

메신저 백본 JS 및 메신저를 사용하여 모델에서 데이터를 표시하는 데 문제가 있습니다. 누구나 어떻게 작동하는지 알 수 있습니까? TIABackbone.js 모델 (2)

VIEW.JS -

render: function() { 
      ///EDITED TO SIMPLIFY  

      var toModel = new tModel();//tModel is the name of the model  
    console.log(toModel.get('data'));//?? UNDEFINE 


    } 

MODEL.JS -

data:[ 
     { text: "Google", href: "http://google.com" }, 
     { text: "Facebook", href: "http://facebook.com" }, 
     { text: "Youtube", href: "http://youtube.com" } 
    ], 
+0

. 주어진 답변이 모델의 다른 부분과 뷰 코드에 따라 어떻게 다를 수 있는지 확인할 수있었습니다. 좀 더 우리에게 우리를 공급해 주시겠습니까? 예를 들어, 데이터가 모델 특성이라고 가정하는 것처럼 보이지만 그렇지 않습니까? 아니면 객체의 속성입니까? 'model.get ('data')'대'model.data' – jmk2142

+0

지금은 충분히 명확합니까? 미안. 방금 백본을 사용하기 시작했습니다. – koko

+0

기본적으로 @StuR이 대신 해주었습니다. ;-) 그것이 당신의 견해와 모델의 구조라면, 그는 정확한 답과 철저한 답/완전한 코드입니다. – jmk2142

답변

2

http://jsfiddle.net/g3U7j/6/

model.js

MyModel = Backbone.Model.extend({ 
    defaults: { 
     data: [ 
      { 
      text: "Google", 
      href: "http://google.com"}, 
     { 
      text: "Facebook", 
      href: "http://facebook.com"}, 
     { 
      text: "Youtube", 
      href: "http://youtube.com"} 
     ] 
    } 
}); 

그것은 종류의 하드 진단하는 것 view.js

MyView = Backbone.View.extend({ 
    initialize: function() { 
     var x = this.model.get('data'); 
     console.log(x); 
    } 
}); 

var View = new MyView({ 
    model: new MyModel 
});​ 
+1

나는 바이올린 샘플을 위해 두 번 투표 할 것입니다. – helios

+0

흠. @StuR 샘플을 보내 주셔서 감사합니다. 실제로 나는 또한 1 JS 파일에서만 작동합니다. 그러나 스크립트가 다른 JS (model.js 및 view.js)에 있기 때문에 내 샘플이 작동하지 않습니다. – koko

+0

StuR이 구조를가집니다. stur +1. 모델과 뷰가 2 개의 파일로 나뉘어져 있기 때문에 여전히 작동하지 않습니다. 이해가 되니? – koko

0

그것은 this.model.get('data')의는 (클래스가 아닌 인스턴스 멤버를 참조 모델의 자본 M 드롭). 나는이 일을 해요, 당신이 직접 이벤트 핸들러에서 render를 호출하는 경우

또한, 당신은 this이 제대로 정상적인 물건 자바 스크립트 대신 thisthat를 사용하여 (render 메소드의 클래스 인스턴스에 바인딩되어 있는지 확인해야합니다 주로 Coffeescript에서 좀 더 쉽게).

+0

은 오타입니다. 그 정의 모델 이름 : – koko