fix(pipes): handle undefined value in slice

Closes #7152
This commit is contained in:
cexbrayat 2016-02-18 17:14:40 +01:00 committed by Misko Hevery
parent 1513e201bb
commit 83c19a1fbc
2 changed files with 6 additions and 1 deletions

View File

@ -42,6 +42,8 @@ import {InvalidPipeArgumentException} from './invalid_pipe_argument_exception';
* When operating on a [List], the returned list is always a copy even when all
* the elements are being returned.
*
* When operating on a blank value, returns it.
*
* ## List Example
*
* This `ngFor` example:
@ -62,10 +64,10 @@ import {InvalidPipeArgumentException} from './invalid_pipe_argument_exception';
@Injectable()
export class SlicePipe implements PipeTransform {
transform(value: any, start: number, end: number = null): any {
if (isBlank(value)) return value;
if (!this.supports(value)) {
throw new InvalidPipeArgumentException(SlicePipe, value);
}
if (isBlank(value)) return value;
if (isString(value)) {
return StringWrapper.slice(value, start, end);
}

View File

@ -41,6 +41,9 @@ export function main() {
describe("transform", () => {
it('should return null if the value is null',
() => { expect(pipe.transform(null, [4, 2])).toBe(null); });
it('should return all items after START index when START is positive and END is omitted',
() => {
expect(pipe.transform(list, 3)).toEqual([4, 5]);