parent
9fc24b9c52
commit
bfbf18d983
|
@ -22,11 +22,6 @@ class QueryList<T> extends Object
|
||||||
return _results.toString();
|
return _results.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
List map(fn(T)) {
|
|
||||||
// Note: we need to return a list instead of iterable to match JS.
|
|
||||||
return this._results.map(fn).toList();
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @internal */
|
/** @internal */
|
||||||
void reset(List<T> newList) {
|
void reset(List<T> newList) {
|
||||||
_results = newList;
|
_results = newList;
|
||||||
|
|
|
@ -37,10 +37,25 @@ export class QueryList<T> {
|
||||||
get last(): T { return ListWrapper.last(this._results); }
|
get last(): T { return ListWrapper.last(this._results); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* returns a new list with the passsed in function applied to each element.
|
* returns a new array with the passed in function applied to each element.
|
||||||
*/
|
*/
|
||||||
map<U>(fn: (item: T) => U): U[] { return this._results.map(fn); }
|
map<U>(fn: (item: T) => U): U[] { return this._results.map(fn); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns a filtered array.
|
||||||
|
*/
|
||||||
|
filter(fn: (item: T) => boolean): T[] { return this._results.filter(fn); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns a reduced value.
|
||||||
|
*/
|
||||||
|
reduce<U>(fn: (acc: U, item: T) => U, init: U): U { return this._results.reduce(fn, init); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* converts QueryList into an array
|
||||||
|
*/
|
||||||
|
toArray(): T[] { return ListWrapper.clone(this._results); }
|
||||||
|
|
||||||
[getSymbolIterator()](): any { return this._results[getSymbolIterator()](); }
|
[getSymbolIterator()](): any { return this._results[getSymbolIterator()](); }
|
||||||
|
|
||||||
toString(): string { return this._results.toString(); }
|
toString(): string { return this._results.toString(); }
|
||||||
|
|
|
@ -10,6 +10,7 @@ import {
|
||||||
fakeAsync,
|
fakeAsync,
|
||||||
tick
|
tick
|
||||||
} from 'angular2/testing_internal';
|
} from 'angular2/testing_internal';
|
||||||
|
import {IS_DART} from '../../platform';
|
||||||
|
|
||||||
import {MapWrapper, ListWrapper, iterateListLike} from 'angular2/src/core/facade/collection';
|
import {MapWrapper, ListWrapper, iterateListLike} from 'angular2/src/core/facade/collection';
|
||||||
import {StringWrapper} from 'angular2/src/core/facade/lang';
|
import {StringWrapper} from 'angular2/src/core/facade/lang';
|
||||||
|
@ -46,6 +47,28 @@ export function main() {
|
||||||
expect(queryList.map((x) => x)).toEqual(['one', 'two']);
|
expect(queryList.map((x) => x)).toEqual(['one', 'two']);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (!IS_DART) {
|
||||||
|
it('should support filter', () => {
|
||||||
|
queryList.reset(['one', 'two']);
|
||||||
|
expect((<any>queryList).filter((x) => x == "one")).toEqual(['one']);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should support reduce', () => {
|
||||||
|
queryList.reset(["one", "two"]);
|
||||||
|
expect((<any>queryList).reduce((a, x) => a + x, "start:")).toEqual("start:onetwo");
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should support toArray', () => {
|
||||||
|
queryList.reset(["one", "two"]);
|
||||||
|
expect((<any>queryList).reduce((a, x) => a + x, "start:")).toEqual("start:onetwo");
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should support toArray', () => {
|
||||||
|
queryList.reset(["one", "two"]);
|
||||||
|
expect((<any>queryList).toArray()).toEqual(["one", "two"]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
it('should support toString', () => {
|
it('should support toString', () => {
|
||||||
queryList.reset(['one', 'two']);
|
queryList.reset(['one', 'two']);
|
||||||
var listString = queryList.toString();
|
var listString = queryList.toString();
|
||||||
|
|
Loading…
Reference in New Issue