如何在ember cli中使用DS.RESTAdapter?

时间:2014-07-23 16:45:00

标签: ember.js ember-data

我在models / application.js中创建了模型:

import DS from 'ember-data';

export default DS.Model.extend({
    name: DS.attr('string')
});

在adapter / application.js中创建了适配器:

import Ember from "ember";
import DS from 'ember-data';

export default DS.RESTAdapter.extend({
    host: 'http://site.work/rest/v1/'
});

路由/ application.js中的路由:

import Ember from 'ember';
export default Ember.Route.extend({
    model: function () {
        return this.store.all('application');
});

templates / application.hbs中的模板

{{#each item in model}}
<li>{{item.name}}</li>
{{/each}}

app.js

import Ember from 'ember';
import Resolver from 'ember/resolver';
import loadInitializers from 'ember/load-initializers';

Ember.MODEL_FACTORY_INJECTIONS = true;

var App = Ember.Application.extend({
  modulePrefix: 'chat', // TODO: loaded via config
  Resolver: Resolver
});

loadInitializers(App, 'chat');

export default App;

router.js

import Ember from 'ember';

var Router = Ember.Router.extend({
  location: ChatENV.locationType
});

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

export default Router;

来自服务器的JSON示例:{"application":[{"id":"1","name":"qwe"},{"id":"2","name":"qwe2"}]}

但我的模型是空的,我无法在开发人员工具中找到任何xhr请求。

我应该如何在Ember Cli中使用DS.RESTAdapter?

注意:当我将此行添加到路由器时,它可以工作:

this.store.push('application',{'id':5, 'name':'Is this a question?'});

1 个答案:

答案 0 :(得分:2)

我不确定您的模型名称(application)是否导致奇怪的行为,因为ember(-cli)也将此名称用作根目录,例如适配器,路由等。

除此之外,我将按如下方式定义我的适配器:

import DS from 'ember-data';

export default DS.RESTAdapter.extend({
  namespace: 'rest/v1'
});

然后使用以下命令启动服务器:

ember server --proxy=http://site.work