Ember Data @each vs firstObject差异

时间:2013-11-20 20:24:57

标签: ember.js ember-data

也许我误解了'@each'。

为什么@each选择数组是空的

this.get('taggings.@each.selection').toArray()
[]

但第一个对象存在:

this.get('taggings.firstObject.selection.id')
"528d0f2b6dc8270d2f0002df"

同样,我可以这样做:

this.get('taggings').toArray()[0].get('selection.id')
"528d0f2b6dc8270d2f0002df"

但我宁愿写更简洁的'标签。@ each.selection'

以下是更多背景信息:

App.Folder = DS.Model.extend(App.Auditable, {
  //....
  taggings: DS.hasMany('tagging', {async: true}),
  //...
  selections: function() {
    return this.get('taggings.@each.selection');
  }.property('taggings.@each'),

1 个答案:

答案 0 :(得分:0)

@each用于表示依赖项(在属性方法中),而不是用作getter。

虽然有一些不错的方法可以映射结果。

this.get('taggings').map(function(tagging){return tagging.get('selection')});

甚至更小

this.get('taggings').getEach('selection');

http://emberjs.jsbin.com/AlUjAVo/1/edit