计算属性和聚合数据
计算属性访问数组中的所有项以确定其值。它可以轻松地从数组中添加项和删除项。依赖键包含一个特殊键 @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 服务器,您将收到以下输出 −