2014-10-14 2 views
0

저는 백본을 처음 사용 했으므로이 문제를 파악할 수 없습니다. 여기 백본 모델이 서버 데이터로 업데이트되지 않습니다.

내 모델의 :

var itinerary = Backbone.Model.extend({ 
    defaults: function() { 
     return { 
     ItineraryID: null, 
     ItineraryString: "No itineraries", 
     CreatorID: null, 
     PublicFlag: false, 
     CreateDate: null, 
     LastUpdate: null 
     } 
    }, 
    urlRoot:'/dev/api/itineraries', 
    idAttribute:'ItineraryID' 
}); 

다음은 서버에서 주어진 일정 가져 오는 내 코드입니다 :

function show_saved_itinerary(tripID) { 
    //Get itinerary from database 
    var savedTrip = new itinerary({ItineraryID:tripID}); 

    savedTrip.fetch(); 
    thisTrip = savedTrip.get('ItineraryString'); 
} 

내가 서버에서 적절한 응답을받을를하지만, "GET ('ItineraryString') "행은 서버에서 가져온 비트 대신 기본값 인"여정 없음 "을 반환합니다. 가져 오는 후

이 모델은 다음과 같습니다 속성 :

({ 
    cid:"c1", 
    attributes:{ 
     0:{ 
      ItineraryID:"21", 
      ItineraryString:"44.8582569~-93.32529540000002~second sushi test~ChIJ7w_kLSDY94cRYTNjiDPPJa8", 
      CreatorID:"1", 
      PublicFlag:"0", 
      CreateDate:"1412964129", 
      LastUpdate:"2014-10-13 12:58:57" 
     }, 
     ItineraryID:"21", 
     ItineraryString:"No itineraries", 
     CreatorID:null, 
     PublicFlag:false, 
     CreateDate:null, 
     LastUpdate:null 
    }, 
     _changing:false, 
     _previousAttributes:{ItineraryID:"21", ItineraryString:"No itineraries", CreatorID:null, PublicFlag:false, CreateDate:null, LastUpdate:null}, 
     changed:{0:{ItineraryID:"21", ItineraryString:"44.8582569~-93.32529540000002~second sushi test~ChIJ7w_kLSDY94cRYTNjiDPPJa8", CreatorID:"1", PublicFlag:"0", CreateDate:"1412964129", LastUpdate:"2014-10-13 12:58:57"}}, 
     id:"21", 
     _pending:false 
}) 

그래서는 "0"내부 모델에 서버 데이터를 추가합니다.

그러나 간단한 model.get() 호출이 올바른 값을 반환하도록 기본 값을 바꾸려면 어떻게해야합니까?

+0

서버의 응답을 표시해야합니다. – hindmost

답변

1

JSON 응답이 실제로 JSON 개체의 배열이라고 가정합니다.이 경우 모델 정의에 구문 분석 메서드를 추가하여 모델에 추가하기 전에 응답을 구문 분석해야합니다.

Backbone.Model.extend({ 
... 
parse : function(resp){ 
    return resp[0]; 
}, 
}); 
+0

아니요, 응답은 JSON 객체의 배열이 아닙니다. 응답은 다음과 같습니다. '[{ "ItineraryID": "ItineraryString": "44.8582569 ~ -93.32529540000002 ~ 초밥 테스트 ~ ChIJ7w_kLSDY94cRYTNjiDPPJa8", "CreatorID": "1", "PublicFlag": " 0 ","CreateDate ":"1412964129 ","LastUpdate ":"2014-10-13 12:58:57 "}] ' –

+0

@SteveRay'[]'배열을 나타냅니다. 당신이 게시 한 것은 객체가 1 개인 json 배열입니다. 내가 대답 한 것을 시도해 보면 그것이 효과가 있다는 것을 알 수 있습니다. – Andrew

+0

그것을 추가했지만 여전히 기본값을 반환합니다. 모델은 다음과 같습니다 'VAR 일정 = Backbone.Model.extend ({ \t \t 기본값 : 기능() { \t \t 반환 { \t \t \t ItineraryID : 널 (null), \t \t \t ItineraryString : "아니 여정을" , \t \t \t CreatorID : 널 (null), \t \t \t PublicFlag : 거짓, \t \t \t CreateDate : NULL, \t \t \t LASTUPDATE : NULL \t \t \t \t }} \t \t 해석 : 함수 (RESP) { \t \t \t 복귀 RESP [0]; \t \t} \t \t UrlRoot에 '/ 디바이스/API/일정' \t \t idAttribute 'ItineraryID' \t}); ' –

관련 문제