0
我目前正在尝试设置ember以使用ember-django-adapter与Django的REST框架进行交互。如何使用Django REST gis制作ember工作
这工作完美无瑕。但是自从我开始使用djangorestframework-gis以来,烬宝不能够处理响应了。
我还没有发现任何人用烬创建geoJSON,除了:https://gist.github.com/cspanring/5114078但这似乎并不正确,因为我不想更改数据模型?
这是API响应:
{
"type": "FeatureCollection",
"features": [
{
"id": 1,
"type": "Feature",
"geometry": {
"coordinates": [
9.84375,
53.665466308594
],
"type": "Point"
},
"properties": {
"date_created": "2014-10-05T20:08:43.565Z",
"body": "Hi",
"author": 1,
"expired": false,
"anonymous": false,
"input_device": 1,
"image": "",
"lat": 0.0,
"lng": 0.0
}
}
]
}
虽然烬希望是这样的:
[{"id":1,
"date_created":"2014-10-05T20:08:43.565Z",
"body":"Hi",
"author":1,
"expired":false,
"anonymous":false,
"input_device":1,
"image":"",
"lat":0,
"lng":0
}
]
我对这个问题采取了写我自己的序列:
import Ember from "ember";
import DS from "ember-data";
export default DS.DjangoRESTSerializer.extend({
extractArray: function(store, type, payload) {
console.log(payload);
//console.log(JSON.stringify(payload));
var features = payload["features"];
var nPayload = [];
for (var i = features.length - 1; i >= 0; i--) {
var message = features[i];
var nmessage = {"id": message.id};
for(var entry in message.properties){
var props = message.properties;
if (message.properties.hasOwnProperty(entry)) {
var obj = {}
nmessage[entry]=props[entry];
}
}
nPayload.push(nmessage);
};
console.log(nPayload); //prints in the format above
this._super(store, type, nPayload);
},
})
但我收到以下错误:
The response from a findAll must be an Array, not undefined
我在这里错过了什么?或者这是错误的方法?有没有人试图让这个工作?
另一种方法是在服务器端处理这个问题,并简单地输出一个正常的restframework响应并在后端设置lat和long。