0

バックボーンには、このようなWebサーバーからのjson構造があります(注:大量のドキュメントのみを受信するため、RESTfulサービス用ではありません) {'stations':[station1、station2]、'geo':[ lat1、lng1、lat2、lng2 ....]}、ここで、「stations」配列にはバスステーション番号を表す2つの番号のみがあり、「geo」は2つのステーション間の中間ジオロケーションポイントを表します。通常、アプリケーションでは、ステーション配列を任意の配列[station1、station2]または[station2、station1]で取得できます。次に、このステーション配列を一意のIDとして使用して、「geo」配列(中間地理位置)を取得します。ポイント。

たとえば、{'stations':[38306,38304]、'geo':[53.21579073715244、-2.8958864745734445,53.26019、-2.9422970000000532]}は、38306と38304の番号が付けられた2つのステーションと、2を表す4つの長さの配列'geo'があることを意味します。ジオポイント。

window.stanoxPoints = Backbone.Model.extend({
    defaults:{
        "stations":new Array(),
        "points":new Array()
    }           
});

window.stanoxPointsCollection = Backbone.Collection.extend({
  model: stanoxPoints,
  url:"http://localhost:8080/geo",
});

var stanoxCollection = new stanoxPointsCollection();
stanoxCollection.fetch({
        success:function(collection,response){
            console.log('fetch the data success');
            collection.each(function(data){
                console.log(data.get('stations')+"   "+data.get('points'));                             
            })
        },
        error:function(collection, response){
        }
    })      

したがって、上記のようにモデルを単純に設計し、コレクションを使用してデータをフェッチしますが、データをクエリする場合、何か問題があります。

stanoxCollection.get([38201,38202])    //undefined

私の質問は、「station」配列のみを使用して「geo」配列を取得する場合、バックボーンモデルのIDまたはインデックスとして「station」をどのように作成できますか?配列の「stations」の順序に関係なく、ex [station1、station2]または[station2、station1]は、ジオポイントの配列を取得できます。ステーションの配列の順序が逆になっている場合にのみ、ジオ配列の順序も逆になります。

idAttribute:'stations'を試しました。元のIDは[38201,38202]なので、console.log('fetch get by id'、stanoxCollection.get([38201,38202])。get('points' )); // Works console.log('fetch get by id'、stanoxCollection.get([38202,38201])); //IDとして逆配列では機能しません

それに対処する方法はありますか?

4

0 に答える 0