24 lines
562 B
TypeScript
24 lines
562 B
TypeScript
/// <reference path='./window.extension.d.ts'/>
|
|
// #docregion
|
|
import {Pipe} from 'angular2/core';
|
|
|
|
// #docregion pipe-metadata
|
|
@Pipe({
|
|
name: 'fetch',
|
|
pure: false
|
|
})
|
|
// #enddocregion pipe-metadata
|
|
export class FetchJsonPipe {
|
|
private fetchedValue:any;
|
|
private fetchPromise:Promise<any>;
|
|
|
|
transform(value:string, args:string[]):any {
|
|
if (!this.fetchPromise) {
|
|
this.fetchPromise = window.fetch(value)
|
|
.then((result:any) => result.json())
|
|
.then((json:any) => this.fetchedValue = json);
|
|
}
|
|
|
|
return this.fetchedValue;
|
|
}
|
|
} |