2

我正在尝试使用 ember 进行简单的 REST API 设置,但我无法让它达到正确的终点,我尝试了各种无济于事,但我的代码目前看起来像这样:

window.App = Ember.Application.create({
    LOG_TRANSITIONS: true,
    LOG_TRANSITIONS_INTERNAL: true
});

App.ApplicationAdapter = DS.RESTAdapter.extend({
    host: 'http://myserver.com'
});

/* Setup routes */

App.Router.map(function() {
  this.route("bar");
});

App.BarRoute = Ember.Route.extend({
    model: function() {
        return this.store.findAll('bar');
    }
});

在我拥有的主索引模板中{{#link-to "bar"}}Bars{{/link-to}},但是当我单击链接(在本地运行页面)时,我在控制台中看到了这个:

OPTIONS file://localhost/bars  

无论我尝试什么,它总是使用相对 URL,而不是像我期望的那样为主机添加前缀,如果我在 ember_data.js 中放置一个断点,Ember.$.ajax(hash);我可以看到它hash.url只是“/bars”。我在这里想念什么?

4

3 回答 3

3

不要忘记将Adapter设置为Store,如下所示:

App.Adapter = DS.RESTAdapter.extend({
    host: 'http://www.yourdomain.com',
    namespace: 'url/path/to/app'
});

App.Store = DS.Store.extend({
    adapter: App.Adapter
});

希望能帮助到你

在将 ember-data 升级到版本 1.0.0-beta2 后,这个答案对我有用。在遵循指南的某个阶段,我最终获得了一个较旧的版本,并且从那时起发生了重大变化。

于 2013-09-27T12:37:49.343 回答
1

您是否尝试从本地文件系统运行您的 Ember 应用程序?file:///... 要使远程 AJAX 调用正常工作,您需要使用某种本地服务器通过 http(或 https)访问您的应用程序。

于 2013-09-27T22:17:06.343 回答
0

我认为您必须设置一些数据模型,然后为该模型连接适配器。

App.BarAdapter = DS.RESTAdapter.extend({
    host:'http://myserver.com',
});

App.Bar = DS.Model.extend({
  author: DS.attr('string'),
  title: DS.attr('string'),
});
于 2013-09-27T11:12:19.533 回答