我是EmberJS的新手,似乎无法弄清楚我的代码有什么问题。我已经阅读并比较了不同的示例项目,希望找到“缺失的链接”,所以我很欣赏第二组眼睛:
我正在使用:
流血边缘,因为我不断收到网站上的任何内容的错误。
的index.html :
<script type="text/x-handlebars" data-template-name="application">
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="items">
<h2>Total entries: {{length}}</h2>
{{#if length}}
<ul>
{{#each item in controller}}
<li>{{item.title}}</li>
{{/each}}
</ul>
{{/if}}
</script>
app.js :
window.App = Ember.Application.create({
LOG_TRANSITIONS: true
});
// Model
App.Store = DS.Store.extend({
revision: 12,
adapter: DS.RESTAdapter.extend({
bulkCommit: false,
url: '/api'
})
});
App.Item = DS.Model.extend({
id: DS.attr('number'),
title: DS.attr('string')
});
// Router
App.Router.map(function () {
this.resource('items', function () {
this.resource('item', { path: ':item_id' });
});
});
App.IndexRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('items');
}
});
App.ApplicationRoute = Ember.Route.extend({
setupController: function() {
this.controllerFor('item').set('model', App.Item.find());
}
});
App.ItemsRoute = Ember.Route.extend({
model: function () {
return App.Item.find();
}
});
// Controller
App.ItemsController = Ember.ArrayController.extend({
sortProperties: ['title']
});
App.ItemController = Ember.ObjectController.extend({
isEditing: false,
editItem: function () {
this.set('isEditing', true);
}
});
在加载时,对/ api / items发出XHR请求,返回如下:
{"items":
[
{
"id":"518c7ceeef56038b77000000",
"title":"Test 1"
},
{
"id":"518c7ceeef56038b77000001",
"title":"Test 2"
}
]
}
因此正在检索数据,但不知何故,它只是没有出现给用户!
会赞赏一些指示。谢谢!
答案 0 :(得分:0)
我可以想象你的模型是错误的,如果名称是id
,则不需要明确指定ember-data中的id
字段。 source code中的评论内容为:
通过调用获取记录的主键名称 具有记录类型的序列化程序
primaryKey
。 除非你覆盖primaryKey
方法,否则这个 将是'id'
。
尝试将您的模型更改为此简化版本:
App.Item = DS.Model.extend({
title: DS.attr('string')
});
希望有所帮助