2012-10-03 2 views
0

easyXDM을 사용하여 백본 모델 패치 기능을 오버라이드하려고하는데 easyXDM을 사용하는 이유는 서버가 다른 도메인에 있기 때문입니다. 여기 백본 모델은 easyxdm을 사용하여 페치를 오버라이드합니다.

는 가져 오기 코드 :

 fetch: function(options) 
    { 
     model = this; 
     a = true; 
     this.xhr.request({ 
      url: "http://server.dev:9000/users/" + this.id, 
      method: "GET" 
     }, function(response){ 
      console.log(response.data); 

      var jsonResponse = JSON.parse(response.data); 

      if (jsonResponse.status == 'success'){ 
      model.set({ 
       firstName : jsonResponse.data.first_name, 
       lastName : jsonResponse.data.last_name, 
       email : jsonResponse.data.email, 
       companyName : jsonResponse.data.company.name, 
       companyId : jsonResponse.data.company.id 
      }) 
      } 
     }); 

    } 

그리고 여기 컨트롤러 코드가 나는 모델이 아직 아직 채워지지 않은, 가져 오기를 호출 할 때마다 그래서 문제가 모델

var user = new UserModel({id : id}); 
    user.fetch(); 
    alert(user.get('firstName')); // display undefined 

를 가져 오는 것입니다 . easyXDM 요청이 비동기 적이기 때문에 아직 채워지지 않았기 때문에 생각하고 있습니다. 모델이 채워지고 사용할 준비가되었는지 확인하려면 어떻게합니까? 아마도 콜백을 사용하여 콜백을 만드는 방법에 대한 지침이 있습니까?

답변

1

죄송합니다. 처음에는 질문에 대해 오해했습니다. Fetch는 easyXDM의 유무에 관계없이 비동기이므로 fetch의 onsuccess 콜백을 구현하거나 모델에 작업을 수행하기 전에 길이 또는 다른 메서드를 사용하여 모델이 설정되어 있는지 확인해야합니다.

Backbone.js: Elegant way to check if data ready and if the dataset is empty

+0

그게 잘하지만 이벤트를 트리거보다이 작품이 다른 만드는 다른 방법이있다 :이 포스팅은 물론 도와 드릴까요? – hrusli

+0

네, 대답은 – codemonkey

+0

에서 언급 한 성공 콜백을 사용합니다. 미안하지만, hieexone의 의견은 제 대답을 완전히 편집하기 전이었습니다. –

관련 문제