javascript - 自动对象到数组的转换

标签 javascript ember.js handlebars.js ember-data

我在客户端使用 Ember-Data,在服务器端使用 ruby​​ 从 postgres SQL 数据库获取数据,

当我从服务器端执行 App.Person.findAll(App.Person) 时,我将返回一个 ruby​​ 哈希对象数组

现在,当我执行 console.log(typeof App.Person.findAll(App.Person)) 时,它会打印 'object'

但是当我在 Handlebars 中使用它时,

//Here I set in my ArrayController this.set('content', App.Person.findAll(App.Person));
{{#collection contentBinding="content"}} 
  Name: {{view.content.name}}
{{/collection}}

它会打印所有名称,就好像我们正在迭代对象数组一样,ember 是否将对象转换为数组?

最佳答案

尝试使用 App.Person.findAll(App.Person).toArray() 查看记录数组,以及 record.toJSON() 将记录视为对象;即

App.Person.findAll(App.Person).map(function(record) { 
    return record.toJSON();
}

findAll() 返回的结果是一个 RecordArray: https://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/store.js#L378

https://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/record_arrays/record_array.js

RecordArray 扩展了 ArrayProxy,它继承了 toArray() 方法。

关于javascript - 自动对象到数组的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13449021/

相关文章:

javascript - HTML 按钮表现不佳

javascript - 如何检查值是否未定义,如果是,则将其设置为 null

postgresql - 在 ember 中与数组 id 有很多关系

javascript - #each 上的 Handlebars 解析错误 - 每个不匹配 if - 31 :7

javascript - 如何缓存 javascript 文件

javascript - 使用 JSONP 在 javascript 小部件中导航

javascript - 在 ember.js 中实现一个 "conditional"后退按钮

javascript - 获取 Emberjs 中点击的元素的值

javascript - 将Class 添加到 Handlebars 脚本中的<tr>

meteor - 在 meteor 中的集合中迭代时,是否有一种获取索引的方法? [复制]