From d8341c45a520b925caba2a4cee788df41c0fe2aa Mon Sep 17 00:00:00 2001 From: laco0416 Date: Fri, 8 Jan 2016 15:34:25 +0900 Subject: [PATCH 1/2] feat(core): Add `QueryList#forEach` --- modules/angular2/src/core/linker/query_list.ts | 5 +++++ modules/angular2/test/core/linker/query_list_spec.ts | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/modules/angular2/src/core/linker/query_list.ts b/modules/angular2/src/core/linker/query_list.ts index d969a524c283..5341d46d6acb 100644 --- a/modules/angular2/src/core/linker/query_list.ts +++ b/modules/angular2/src/core/linker/query_list.ts @@ -51,6 +51,11 @@ export class QueryList { */ reduce(fn: (acc: U, item: T) => U, init: U): U { return this._results.reduce(fn, init); } + /** + * executes function for each element in a query. + */ + forEach(fn: (item: T) => void): void { this._results.forEach(fn); } + /** * converts QueryList into an array */ diff --git a/modules/angular2/test/core/linker/query_list_spec.ts b/modules/angular2/test/core/linker/query_list_spec.ts index fe284347dcde..e02f309d9fe6 100644 --- a/modules/angular2/test/core/linker/query_list_spec.ts +++ b/modules/angular2/test/core/linker/query_list_spec.ts @@ -50,6 +50,13 @@ export function main() { expect(queryList.map((x) => x)).toEqual(['one', 'two']); }); + it('should support forEach', () => { + queryList.reset(['one', 'two']); + let join = ''; + queryList.forEach((x) => join = join + x); + expect(join).toEqual('onetwo'); + }); + if (!IS_DART) { it('should support filter', () => { queryList.reset(['one', 'two']); From ef22fd471b428bfce3c625488b55caf622af2548 Mon Sep 17 00:00:00 2001 From: laco0416 Date: Thu, 11 Feb 2016 09:54:08 +0900 Subject: [PATCH 2/2] feat(core): Add `QueryList.forEach` to public api. --- tools/public_api_guard/public_api_spec.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/public_api_guard/public_api_spec.ts b/tools/public_api_guard/public_api_spec.ts index da842083c0af..f8549ddf4661 100644 --- a/tools/public_api_guard/public_api_spec.ts +++ b/tools/public_api_guard/public_api_spec.ts @@ -342,6 +342,7 @@ const CORE = [ 'QueryList.changes:Observable', 'QueryList.filter(fn:(item: T) => boolean):T[]', 'QueryList.first:T', + 'QueryList.forEach(fn:(item: T) => void):void', 'QueryList.last:T', 'QueryList.length:number', 'QueryList.map(fn:(item: T) => U):U[]',