簡體   English   中英

骨干模型未使用服務器數據更新

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM