【问题标题】:Retrieving a single record in ember在 ember 中检索单个记录
【发布时间】:2014-07-21 10:58:45
【问题描述】:

长话短说,我正在尝试在 ember 中检索一条记录(更具体地说,是一个包含登录后重要信息的用户对象)。

但是,当我尝试使用 @store.find "user", query 时,我收到了 Error: Assertion Failed: The response from a findQuery must be an Array, not undefined

有什么想法吗?

【问题讨论】:

    标签: ember.js coffeescript ember-data


    【解决方案1】:

    假设您从上面查询 user 类型和 query 是 POJO,您的代码可能如下所示:

    var usersPromise = store.find('user', {foo:'bar', bla: 'baz'});
    

    来自您服务器的响应看起来像这样(注意:users 是复数),这就是您收到错误消息的原因 (ember.js Error: Assertion Failed: The response from a findAll must be an Array, not undefined)。

    {
      users: [
        {
          id: 1,
          name: 'Santa Clause'
        }
      ]
    }
    

    由于您通过 POJO 进行查询,因此 Ember 假设有 0+ 个结果。承诺解决后,您可以从中返回第一个对象,因为集合只有一个。

    usersPromise.then(function(users){
      return users.get('firstObject');
    });
    

    所以在你的情况下你可能会做这样的事情

    this.store.find('user', {foo:'bar', bla: 'baz'}).then(function(users){
      return users.get('firstObject');
    });
    

    【讨论】:

    • 谢谢,我很惊讶这没有得到更好的记录!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多