在主干中,我有一个来自 Web 服务器的 json 结构,如下所示。(注意,我只会收到一堆文档,所以不适用于 RESTful 服务) { 'stations':[station1,station2], 'geo':[ lat1,lng1,lat2,lng2 ....]},其中 'stations' 数组只有两个数字表示公交车站编号,而 'geo' 表示两个车站之间的中间地理定位点。通常在应用程序中,我可以在任何数组 [station1,station2] 或 [station2,station1] 中获取站点数组,然后我使用此站点数组作为唯一 id 来获取“地理”数组 - 中间地理位置点。
例如,{'stations':[38306,38304],'geo':[ 53.21579073715244,-2.8958864745734445,53.26019,-2.9422970000000532]},这意味着我有两个编号为 38306 和 38304 的站点,以及 4 长度代表数组地理点。
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' 数组,我怎样才能使它成为 'station' 作为骨干模型中的 id 或索引,并且无论数组 'stations' 的顺序如何, ex [station1,station2] 或 [station2,station1] 它可以让我得到地理点的数组,只有当站的数组顺序颠倒时,地理数组的顺序也会颠倒。
现在我尝试了 idAttribute: 'stations',所以由于原始 id 是 [38201,38202],所以 console.log('fetch get by id', stanoxCollection.get([38201,38202]).get('points' ));// 工作 console.log('fetch get by id', stanoxCollection.get([38202,38201])); // 不适用于反向数组作为 id
有没有办法处理它?