ember.js - 如何在 ember-model 中使用外部 url

标签 ember.js ember-model

这似乎是一个简单的问题,但如何将外部 URL 与 Ember-model 一起使用?所有示例都假设相同的域。我想使用例如养蜂场或火力基地。

https://github.com/ebryn/ember-model

最佳答案

您可以将完整的 url 设置为为模型设置的属性,而不是相对 URL。像这样:

App.User = Ember.Model.extend({
  id: attr(),
  name: attr(),
  comments: hasMany("App.Comment", {key: 'comment_ids'})
});

App.User.url = "http://example.com/users";

更新:

如果您不想在多个位置指定主机名,最简单的做法可能是将主机名分配给一个变量,然后在声明 URL 时引用该变量。不过,如果您确实想了解 ember 模型的内部结构,您也可以重写自定义适配器中的 buildURL 方法,如下所示:

App.CustomAdapter = Ember.RESTAdapter.extend({
  buildURL: function(klass, id) {
    var urlRoot = "http://example.com/" + 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 + ".json";
    } else {
      return urlRoot + ".json";
    }
  }
});

关于ember.js - 如何在 ember-model 中使用外部 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21491784/

相关文章:

javascript - Ember Octane Route 类是否支持使用 mixins?

Ember.js - 索引路由与 "top-level"资源路由?

javascript - 未绑定(bind) ember 每个助手,无需脚本标签

javascript - ember-model:如何强制从服务器重新获取记录?

templates - Uncaught Error : Template was precompiled with an older version of Handlebars

Ember.js 变形器 - 它们去哪里?

javascript - Ember.js ember-model 泄漏问题?

javascript - 当 Ember-Model 有新记录时更新 View

javascript - 通过 hasMany 关系访问 ember-model 对象中的相关集合

ember.js - model.save() 与 model.get ('store' ).commit() 之间的区别