[英]Backbone model not updating with server data
我是Backbone的新手,因此無法解決這個問題。
這是我的模型:
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')”行返回的是默認值-“ No itineraries”-而不是從服務器獲取的位。
提取后,模型如下所示:
({
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()調用將返回正確的值?
我假設您的JSON響應實際上是一個JSON對象數組,在這種情況下,您需要先通過在模型定義中添加parse方法來解析該響應,然后再將其添加到模型中。
Backbone.Model.extend({
...
parse : function(resp){
return resp[0];
},
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.