【发布时间】:2015-11-30 02:57:25
【问题描述】:
我是 Ember 开发新手,正在尝试使用连接到 API 的 Ember 数据构建 Ember 应用。
我在 http://localhost:3000/api/panelists 位置的 API 返回
{
"panelists":[
{
"id":1,
"secret":"",
"isDisabled":"false",
"disabledAt":"null",
"isLocked":"false",
"isSecretExpired":"false",
"invalidAuthCount":"0",
"givenName":"Sma",
"middleName":"na",
"surname":"ran",
"avatarMimeType":"JPEG",
"avatarFilePath":"/home/sample.jpeg",
"createdAt":"2015-11-27T12:17:05.000Z",
"isDeactivated":"false"
}
]
}
现在在我的 Ember 应用中,此案例的模型处理程序位于以下位置,App_Root/app/panelists/model.js
具体需要的路由在以下路径,App_Root/app/directory/route.js
现在,我如何使用模型 App_Root/app/panelists/model.js 和路由 App_Root/app/ 访问 API http://localhost:3000/api/panelists目录/route.js?
当前实施: route.js
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.findAll('panelists');
},
});
在浏览器中出现以下错误:
WARNING: Encountered "panelists" in payload, but no model was found for model name "panelist" (resolved model name using golf-digest-panelists@serializer:-rest:.modelNameFromPayloadKey("panelists"))
Error while processing route: directory Assertion Failed: You must include an 'id' for undefined in an object passed to 'push' Error: Assertion Failed: You must include an 'id' for undefined in an object passed to 'push'
at new Error (native)
at Error.EmberError (http://localhost:4200/assets/vendor.js:24738:21)
at assert (http://localhost:4200/assets/vendor.js:14639:13)
at Object.assert (http://localhost:4200/assets/vendor.js:22040:34)
at ember$data$lib$system$store$$Service.extend._pushInternalModel (http://localhost:4200/assets/vendor.js:72829:15)
at ember$data$lib$system$store$$Service.extend.push (http://localhost:4200/assets/vendor.js:72815:34)
at http://localhost:4200/assets/vendor.js:67700:17
at Object.Backburner.run (http://localhost:4200/assets/vendor.js:9710:25)
at ember$data$lib$system$store$$Service.extend._adapterRun (http://localhost:4200/assets/vendor.js:73042:33)
at http://localhost:4200/assets/vendor.js:67697:15
提前感谢您的帮助
【问题讨论】:
标签: ember.js ember-data ember-cli