将RJSON与ember集成

时间:2014-07-26 13:16:59

标签: ember.js

我尝试将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。我在哪里可以找到适当的扩展方法?

1 个答案:

答案 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%。