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。