2

I'm using a cross domain REST api. I have defined my custom REST adapter to trigg my API. Pb is to remove the ".json" automaticaly set by ember-model.

How to configure my adapter to avoid setting my "replace function" (url=url.replace('.json', '');)

App.Book.adapter = Ember.RESTAdapter.create({
  ajaxSettings: function(url, method) {
    var authorization= "Basic " + btoa("login" + ":" + "pwd");
    url=url.replace('.json', '');
    return {
      url: url,
      type: method,
      dataType: "json",
      headers: {
        "Authorization": authorization
      },
    };
  }
});
App.Certificate.url='http://mysite/api/v1/books';
4

1 に答える 1

2

「置換関数」を設定しないようにアダプターを構成する方法 (url=url.replace('.json', '');)

ember-model はこの動作を変更するための構成オプションを提供していないため、私見ですが、実行することによる解決策url = url.replace('.json', '');はそれほど悪くありません。

私が考えることができる別の方法は、を再度開き、関数をRESTAdapterオーバーライドして、を含めないようにすることです。buildURL.json

Ember.RESTAdapter.reopen({
  buildURL: function(klass, id) {
    var urlRoot = Ember.get(klass, 'url');
    if (!urlRoot) { throw new Error('Ember.RESTAdapter requires a `url` property to be specified'); }

    if (!Ember.isEmpty(id)) {
      return urlRoot + "/" + id;
    } else {
      return urlRoot;
    }
  }
});

ただし、元のコードが変更され、オーバーライドも変更する必要があったライブラリを更新したい場合、これは将来の保証ではありません。

それが役に立てば幸い。

于 2013-08-03T23:39:20.633 に答える