2

我正在使用跨域 REST api。我已经定义了我的自定义 REST 适配器来触发我的 API。pb 是去掉 ember-model 自动设置的“.json”。

如何配置我的适配器以避免设置我的“替换功能”(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 回答