【问题标题】:Ember data route with handler and api call in different location带有处理程序和 api 调用在不同位置的 Ember 数据路由
【发布时间】: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


    【解决方案1】:

    这条路径App_Root/app/panelists/model.js 不适合您的模型。它应该是App_Root/app/panelist/model.js,不带复数。此外,如果您不使用pod 结构,则模型的公共路径是App_Root/app/model/panelist.js

    【讨论】:

      【解决方案2】:

      通过改变去掉复数

      return this.store.findAll('panelists');
      

      return this.store.findAll('panelist');
      

      【讨论】:

        猜你喜欢
        • 2016-05-29
        • 1970-01-01
        • 2019-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多