【问题标题】:store.query response expected to be an array but it was a single recordstore.query 响应应该是一个数组,但它是一条记录
【发布时间】:2016-09-01 06:24:24
【问题描述】:

我正在调用 API 以获取与配置过滤器匹配的会议室。响应返回一个数组,但是 Ember 给了我错误:

处理路由时出错:房间断言失败:对 store.query 的响应应该是一个数组,但它是一条记录。请将您的回复包装在一个数组中或使用store.queryRecord 查询一条记录。

我正在使用 RESTAdapter。

我做错了什么?

路线:

import Ember from 'ember';

export default Ember.Route.extend({
  model(){
    return this.store.query('room', { filter: { option1: 'x', option2: 'y' } }).then(function(rooms) {
        return rooms;
    });
  }
});

由服务器返回:

{"rooms":[
    {"id":"1","size":"600","title":"Centennial Room","description":""},
    {"id":"3","size":"1500","title":"Grand Auditorium","description":""}
]
}

谢谢。

【问题讨论】:

  • 你的序列化器是什么?
  • 我还没有创建一个。
  • 默认RESTSerializer。为确保请通过ember g serializer application 命令在您的序列化程序文件夹中创建application.js,并从RESTSerializer 扩展并导入import RESTSerializer from 'ember-data/serializers/rest';

标签: ember.js ember-data


【解决方案1】:

问题在于多元化。我正在使用 pod,文件夹的名称(以及模型名称和 URL)是 rooms。我将其更改为room,错误消失了。

还有一个 ember 警告,但我忽略了它,而是注意错误。修复警告将修复错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 2023-04-07
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    相关资源
    最近更新 更多