【发布时间】:2013-06-12 23:55:05
【问题描述】:
我正在开发一个 Ember 应用程序。我从 localhost 上的同一服务器提供 API 和 ember 应用程序。
我很确定我的 API 符合 Ember 规范(尽管我不确定,因为给出了相互冲突的信息 here 和 here。第二个站点链接到 this Ember 博客文章,并且是应该是 Ember 约定的形式化)。我的 API 遵循第二个链接的样式,因此请求 host/api/users/1,例如,返回:
{
"users": [{
"username": "jojo"
etc..
}]
}
我知道我的 API 正在工作,因为我可以使用 curl 对其进行测试。我的问题是 Ember 数据似乎没有发出请求。 Chrome 开发者工具网络选项卡显示,当我运行App.User.find() 时,没有发送加载数据的请求。但是我确实得到了这个:
这是我定义商店的咖啡脚本代码:
App.Store = DS.Store.extend
revision: 13
url: 'http://localhost:9292/'
adapter: DS.RESTAdapter
DS.RESTAdapter.reopen
namespace: 'api'
这里是我为“用户”定义模型、控制器和路由的地方:
App.UsersRoute = Ember.Route.extend
model: ->
App.User.find()
App.UsersController = Ember.ArrayController.extend()
App.User = DS.Model.extend
username: DS.attr 'string'
url: DS.attr 'string'
projects: DS.hasMany 'App.Project'
query_instances: DS.hasMany 'App.QueryInstance'
我在这里遗漏了什么重要的东西吗?一般来说,我是 Ember 和客户端开发的新手——也许这里有明显的解决方案,但我不知道它们。如果有人能提供一些关于调试 Ember 的一般提示,我将不胜感激。
【问题讨论】:
-
您的第二个链接 jsonapi.org/format 是 ember-data 最终将符合的新格式。对于当前的 ember-data,您的 API 应符合 emberjs.com/guides/models/the-rest-adapter 的规范,以获得最流畅的体验。
标签: ember.js ember-data