我尝试将emberjs与RJSON集成,但我找不到ember解码JSON的位置。我的第一步是扩展Application Serializer
App.ApplicationSerializer = DS.RESTSerializer.extend({
normalize: function(type, hash, prop) {
hash = RJSON.unpack(hash);
return this._super(type, hash, prop)
},
});
但它不起作用。 Ember传入哈希已经编码的数据只有1条记录。在使用ember解析JSON之后,我需要传递给RJSON.unpack
整个记录数组。我正在使用Ember Data
RESTAdapter
。我在哪里可以找到适当的扩展方法?
答案 0 :(得分:1)
我在ajax
中扩展了DS.RESTAdapter
方法。
DS.RESTAdapter.reopen({
ajax: function(url, type, hash) {
var adapter = this;
return new Ember.RSVP.Promise(function(resolve, reject) {
hash = adapter.ajaxOptions(url, type, hash);
hash.success = function(json) {
json = RJSON.unpack(json);
Ember.run(null, resolve, json);
};
hash.error = function(jqXHR, textStatus, errorThrown) {
Ember.run(null, reject, adapter.ajaxError(jqXHR));
};
Ember.$.ajax(hash);
}, "DS: RestAdapter#ajax " + type + " to " + url);
},
});
现在我的json尺寸缩小了50%。