需要帮助Ember-Data与Zend Rest合作。
起初,我熟悉Zend Framework,因此Rest Adapter很容易设置。 telnet的请求显示它有效,响应也有格式良好的HTTP代码。
Ember Data的设置稍微复杂一些。我安装了一个带Ubuntu的虚拟机,安装了Ruby 1.9.3,git clone
编辑了ember-data存储库并用rake生成了JS文件。我还安装了bundler来解决所有依赖项。似乎工作没有错误。
这对我来说是第一次。我不熟悉红宝石。
不幸的是,它似乎没有起作用。在我的测试应用程序上,我看到了firebug的其余请求。回应看起来也不错。但是对象仍然是空的。
回应:
[{"id":"1","user":"testuser","password":"123","mail":"my@me.com","role":"GUEST","active":"1","hash":null,"last_login":null}]
响应标题:
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection Keep-Alive
Content-Encoding gzip
Content-Length 121
Content-Type application/json; charset=utf-8
Date Wed, 20 Jun 2012 10:49:38 GMT
Expires Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive timeout=15, max=99
Pragma no-cache
Server Apache
Vary Accept-Encoding
X-Powered-By PHP/5.3.13
X-UA-Compatible IE=Edge,chrome=1
我的应用:
// my script
App = Em.Application.create();
App.store = DS.Store.create({
revision: 4,
adapter: DS.RESTAdapter.create({ bulkCommit: false, namespace: 'rest' })
});
App.User = DS.Model.extend({
id: DS.attr('number'),
user: DS.attr('string'),
password: DS.attr('string'),
mail: DS.attr('string'),
role: DS.attr('string'),
active: DS.attr('number'),
hash: DS.attr('string'),
last_login: DS.attr('date')
});
App.postsController = Em.ArrayController.create({
content: App.store.findAll(App.User)
});
// my html page
<script type="text/x-handlebars">
{{#each App.postsController}}
<li>{{user}}</li>
{{/each}}
</script>
我做错了什么?我不确定我的ember-data.js是否有效。
答案 0 :(得分:7)
https://github.com/emberjs/data/issues/132
DS.RESTAdapter需要一个根元素。如:
{
users: [{
"id":"1",
"user":"test user",
"password":"123",
"mail":"my@me.com",
"role":"GUEST",
"active":"1",
"hash":null,
"last_login":null
}]
}
这是因为DS.RESTAdapter支持侧载。不幸的是,它不可配置。解决此要求的唯一方法是滚动自己的适配器。