【发布时间】:2014-07-23 16:45:00
【问题描述】:
我在 models/application.js 中创建了模型:
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string')
});
并在 adapters/application.js 中创建了适配器:
import Ember from "ember";
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
host: 'http://site.work/rest/v1/'
});
routes/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;
路由器.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?'});
【问题讨论】:
-
那么,您是否在做任何会导致网络请求的事情?它们不是靠魔法发生的。
-
ember-cli 构建应用程序并应像本指南中那样自定义适配器emberjs.com/guides/models/customizing-adapters
-
我要问的是,您是否定义了一个路由,该路由将请求一个实际发起网络请求的模型?
-
是的,我有路由应用程序和线路返回 this.store.all('application');
-
this.store.all不会提出任何请求。阅读手册。
标签: ember.js ember-data