バックボーンには、このような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として逆配列では機能しません
それに対処する方法はありますか?