我可以使用FOR OF循环迭代Ember.data数组吗?

时间:2015-01-14 13:54:37

标签: ember.js ember-data

让我对ember感到困惑的一件事就是我可以在其模型中使用什么语法,特别是像数组一样的结构。我可以用FOR OF循环替换这个函数吗?

this.model.foo.forEach(function (baa) {
  types.push(baa.get("type"));
});

1 个答案:

答案 0 :(得分:1)

Ember中的原生JS数组使用NativeArray mixin(参见here)填充额外的优点,除非您明确关闭该功能。

  

NativeArray mixin包含使本机Array支持Ember.MutableArray及其所有依赖API所需的属性。除非您将Ember.EXTEND_PROTOTYPES或Ember.EXTEND_PROTOTYPES.Array设置为false,否则将自动应用。否则,您可以随时通过调用Ember.NativeArray.activate

来应用mixin

因此,例如,如果您愿意,可以使用属性值filter您的本机数组,并使用本机数组已有的for of功能。

App.IndexRoute = Ember.Route.extend({
  model: function() {
    var ar = [ 
      { name: 'red'}, 
      { name: 'yellow'}, 
      { name: 'blue'}
    ];

    for(a of ar){
      console.log(a.name);
    }

    return ar.filterBy("name", "red");
  }
});

工作演示here