【发布时间】:2014-10-15 03:01:52
【问题描述】:
我是 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() 调用将返回正确的值?
【问题讨论】:
-
您必须显示来自您的服务器的响应