Javascript Ember.js将静态数据切换到REST服务器
提前谢谢你的帮助。我在找方向。目前我有一个余烬网站,在app.js中有所有静态数据。我想将其移动到rest服务器,以便能够更改和添加记录 这是我目前的工作: 我确实设法启动了一个节点rest服务器,但无法使ember应用程序正确连接 我已尝试进行一些更改以查看rest服务器:Javascript Ember.js将静态数据切换到REST服务器,javascript,rest,ember.js,Javascript,Rest,Ember.js,提前谢谢你的帮助。我在找方向。目前我有一个余烬网站,在app.js中有所有静态数据。我想将其移动到rest服务器,以便能够更改和添加记录 这是我目前的工作: 我确实设法启动了一个节点rest服务器,但无法使ember应用程序正确连接 我已尝试进行一些更改以查看rest服务器: App.Store = DS.Store.extend({ revision: 12, adapter: DS.RESTAdapter.create({ url: 'http://localhost:3000' }
App.Store = DS.Store.extend({
revision: 12,
adapter: DS.RESTAdapter.create({
url: 'http://localhost:3000'
})
});
App.IndexRoute = Ember.Route.extend({
model: function() {
return this.store.findAll('themes');
}
});
做出了那样的改变,但它永远无法连接
这是:
下面是我的json的样子
[
{
"themes": [
{
"title": "decode",
"price": 0,
"free": true,
"description": "description full",
"columns": 1,
"popular": true,
"purchaseLink": "link",
"demoLink": "link",
"image": "images/img.jpg",
"votes": 0
}
],
"_id": "531f97bb3b229700002919f3"
}
]
我花了很多时间试图弄清楚如何做到这一点,但这对我来说是新的。如果您有任何建议,或者知道任何类型的教程,可以告诉我如何获取我所拥有的并将数据放入rest服务器,以便我可以访问该数据并进行更改,非常感谢。您就快到了-尝试在适配器配置中将键从
url
更改为host
,并使用extend
而不是create
:
App.Store = DS.Store.extend({
revision: 12,
adapter: DS.RESTAdapter.extend({
host: 'http://localhost:3000'
});
});
您使用的是什么版本的余烬数据?(如果不是最新的,你能升级吗?ED在过去几个月变得更好了) 在当前版本1.0.0-beta.7中,默认情况下,Ember Data使用RestaAdapter。只需在ember.js文件之后运行ember-data.js文件,就可以完成所有设置。从您的JSBin来看,看起来您根本没有包括余烬数据。也许它在你的实际代码中,但以防万一。。。默认情况下,它不包含在ember.js中,您可以在此处下载 一旦包含了余烬数据,则“全部查找”查询是
this.store.find('themes')
。有关如何与余烬数据记录交互的信息,请参见余烬文档的这一常规部分,并且在10月份之前几乎忽略余烬堆栈溢出的答案。Ember的发展非常快,直到9月份才巩固了他们的API,尤其是Ember的数据无法保证目前可以避免破坏性的更改
如果出于某种原因需要显式设置ApplicationAdapter,那么代码应该如下所示(正如您现在在JSBin中所做的那样)
完全删除DS.FixtureAdapter,否则我认为您是在自找麻烦。同时删除DS.Store
/App.Store
,因为DS.Store
是自动为您创建的,并且App.Store
不再是一件事
希望有帮助 谢谢。我做了此更改,现在收到“加载路由时出错:错误:找不到“0”的模型”。因此,它似乎已连接到Rest服务器,但没有正确读取数据。你遇到过吗?如果有帮助的话,我也会在节点日志中看到这一点:[id:'themes']findById:NaN null再次感谢您的帮助!是的,您现在的问题是来自REST后端的数据的格式。您可以更改服务器,也可以通过实现
extractArray
和/或extractSingle
来修改适配器。太棒了!谢谢正在获取其他错误,但看起来rest服务器正在工作。谢谢你的帮助!谢谢你的评论!肯定有助于解决问题!
App.ApplicationAdapter = DS.RESTAdapter.extend({
host: yourHostGoesHere
});