计算属性和聚合数据

计算属性访问数组中的所有项以确定其值。它可以轻松地从数组中添加项和删除项。依赖键包含一个特殊键 @each,用于更新当前计算属性的绑定和观察者。

示例

以下示例展示了如何使用 Ember 的 @each 键来使用计算属性和聚合数据 −

import Ember from 'ember';

export default function() {
   var Person = Ember.Object.extend ({
      
      //todos 是一个包含布尔值的数组
      todos: [
         Ember.Object.create ({
            isDone: true
         }),
         Ember.Object.create ({
            isDone: false
         }),
         Ember.Object.create ({
            isDone: true
         })
      ],
      
      //显示todos的剩余值
      remaining: Ember.computed('todos.@each.isDone', function() {
         var todos = this.get('todos');
         
         //返回待办事项数组
         return todos.filterBy('isDone', false).get('length');
      }),
   });
   
    var car_obj = Person.create();
    document.write("The remaining number of cars in todo list: " + car_obj.get('remaining'));
}

现在打开 app.js 文件并在文件顶部添加以下行 −

import computedaggregate from './computedaggregate';

其中,computedaggregate 是指定为"computedaggregate.js"并在"app"文件夹下创建的文件的名称。现在,在导出之前,在底部调用继承的"computedaggregate"。它执行在 computedaggregate.js 文件中创建的 computedaggregate 函数 −

computedaggregate();

输出

运行 ember 服务器,您将收到以下输出 −

Ember.js Computed Properties and Aggregate Data

emberjs_object_model.html