0

我正在使用 Ember 模型,我想为我的所有模型设置一个 URL 前缀,而不是像这样在每个模型上添加它们:

App.MyModel = Ember.Model.extend({
  id: attr(),
  myAttr: attr()
});

App.MyModel.reopenClass({
  url: ajaxUrl + '/some/obscure/path'
});

我知道我可能会覆盖Ember.Model默认urlajaxUrl,但是如果我想将它设置为默认值以外的值,就像上面的例子一样,我必须在前面加上它。

如果这是不可能的,是否有推荐的方法来设置默认值url

4

1 回答 1

0

我想出的最佳解决方案是扩展Ember.RESTAdapter自身。

Ember.RESTAdapter = Ember.RESTAdapter.extend({
  ajaxSettings: function(url, method) {
    return {
      url: ajaxUrl + url,
      type: method
    };
  }
});

App.MyModel = Ember.Model.extend({
  id: attr(),
  myAttr: attr()
});

App.MyModel.reopenClass({
  adapter: Ember.RESTAdapter.create(),
  url: '/some/obscure/path'
});

因为那是我用于模型的适配器。我想这并不理想,但它工作正常。

于 2014-09-12T23:18:30.453 回答