Я реализую пользовательский адаптер для несоответствующих данных JSON. Данные втягиваются, но атрибуты не материализуются. У меня есть следующие карты:Атрибуты модели null, даже после сопоставления
// map function has not been overridden - RESTAdapter is super.
DS.ArcGisAdapter.map("App.Cai", {
caiId: { key: "CAIID" },
name: { key: "ANCHORNAME" }
});
И для моего первичного ключа:
App.restSerializer.configure("App.Cai", {
primaryKey: "CAIID"
});
С App.Cai
(модель), как это:
var attr = DS.attr,
belongsTo = DS.belongsTo;
App.Cai = DS.Model.extend({
caiId: attr("string"),
name: attr("string")
});
Из моего шаблона я получаю это данные (сокращены для представления) через {{debugger}}
& {{log item}}
_data: {
attributes: {
caiId: null
name: null
},
id: null
},
id:"130012000149"
Как вы можете видеть, идентификатор проходит на верхнем уровне, но внизу он не отображается на caiId
и не является name
. Ниже приводится функция findQuery
от моего пользовательского адаптера:
findQuery: function(store, type, query, recordArray) {
var root = this.rootForType(type),
transformedJSON = {},
adapter = this,
rejectionHandler = function (reason) {
Ember.Logger.error(reason, reason.message);
throw reason;
};
return this.ajax(this.buildURL(root), "GET", {
data: query
}).then(function(json){
var feature,
index = 0;
root = root + "s";
transformedJSON[root] = [];
for(;index < json.features.length; index++) {
feature = json.features[index];
transformedJSON[root].push(feature.attributes);
}
adapter.didFindQuery(store, type, transformedJSON, recordArray);
}).then(null, rejectionHandler);
}
Любые идеи приветствуются! Спасибо :) P.S. Дайте мне знать, если вам нужна какая-либо другая информация.
Редактировать: Gist данные JSON pre/post transform.
Редактировать 2: Я придумал взломать, но это не устраняет проблему.
Я расширил JSONSerializer и установил его как сериализатор для своего адаптера. Мне пришлось реализовать крючок keyForAttributeName
, который является резервным, если сопоставления ничего не возвращают. Вот моя реализация:
По-прежнему ищу любую помощь относительно того, почему карта отсутствует для моей модели.
Как выглядит ваша модель «App.Cai»? – intuitivepixel
@intuitivepixel Я обновил свой вопрос, чтобы отразить модель. – knownasilya
По-прежнему ищет некоторые данные. Благодаря! – knownasilya