2012-12-11 2 views
0

는 전 모델에 가져오고 수집에 가져 이해하는 간단한 실험을했습니다. 그러나,이 코드는 모두 '정의되지 않은'제공합니다왜 후 백본을 통해 가져 오기 '정의되지 않은'?

// Model and Collection 
    var SingleItem = Backbone.Model.extend({ 
     urlRoot : '/data/item.json', 
     parse: function(response) { 
      console.log(response); 
      return response; 
     } 
    }); 

    var ManyCollection = Backbone.Collection.extend({ 
     model: SingleItem, 
     url: '/data/items.json', 
    }); 

    var many = new ManyCollection(); 
    many.fetch(); 
    console.log(many); 

    var single = new SingleItem(); 
    single.fetch({ 
     success: function(data) { 
     console.log("OK"); 
     console.log(data.toJSON()); 
     }, 
     error: function(data){ 
     console.log("NOK"); 
     } 
    }); 


    console.log(single.get('name')); 

데모입니다 여기 : https://github.com/mulderp/backbone-model-fetch

가 왜 '정의되지 않은'어떻게해야합니까? 내가 뭘 놓치고 있니? DEV 콘솔

(출력 :

dev output

+0

은 확실히 당신은'success' 콜백 내부에'get' 로깅을 둘 필요가?'fetch' 기억 비동기입니다. – stusmith

+0

그래, 내 사각 지대 ... 감사가 있었다 ! 그것은이 질문에 대한 답입니다. 어쩌면 그것을 넣고 싶습니까? – poseid

답변

3

fetch 비동기이다 데이터 페치되기 전에 그것을 즉시 반환

success 핸들러 수정해야 내부 디버그 로직을 이동. 문제.

+0

덕분에 너무 내 문제를 해결했다. 하지만'fetch'가 config를 가진 객체를 사용한다는 것을 어떻게 알았습니까? Backbone의 [documentation] (http://documentcloud.github.io/backbone/#Model-fetch) – lbrahim

+1

에있는 링크를 참조 할 수 없기 때문에 링크 된 문서에서'fetch ([options])로 정의됩니다. '옵션 옵션 인수를 취하는 것을 나타냅니다. 그런 다음 "옵션 해시 성공 및 오류 콜백을 허용합니다"말을 계속한다. 일반적인 백본 (backbone) 관용구입니다. 많은 메소드가 옵션 객체를 사용합니다. 확실하지 않은 경우 http://documentcloud.github.io/backbone/docs/backbone.html#section-55 언제든지 특수 효과가있는 소스를 읽을 수 있습니다. – stusmith

관련 문제