<!DOCTYPE html>
<html>
<head>
<title>angular2 playground</title>
<link rel="stylesheet" href="style.css" />
<script src="https://npmcdn.com/zone.js@0.6.12/dist/zone.js"></script>
<script src="https://npmcdn.com/reflect-metadata@0.1.3/Reflect.js"></script>
<script src="https://npmcdn.com/systemjs@0.19.31/dist/system.js"></script>
<script src="https://npmcdn.com/typescript@1.8.10/lib/typescript.js"></script>
<script src="config.js"></script>
<script>
System.import('app')
.catch(console.error.bind(console));
</script>
</head>
<body>
<my-app>
loading...
</my-app>
</body>
</html>
/* Styles go here */
### Angular2 Starter Plunker - Typescript - RC.0
A simple plunker demonstrating Angular2 usage:
- Uses SystemJS + TypeScript to compile on the fly
- Includes binding, directives, http, pipes, and DI usage.
System.config({
//use typescript for compilation
transpiler: 'typescript',
//typescript compiler options
typescriptOptions: {
emitDecoratorMetadata: true
},
//map tells the System loader where to look for things
map: {
app: "./src",
'@angular': 'https://npmcdn.com/@angular',
'rxjs': 'https://npmcdn.com/rxjs@5.0.0-beta.6'
},
//packages defines our app package
packages: {
app: {
main: './main.ts',
defaultExtension: 'ts'
},
'@angular/core': {
main: 'bundles/core.umd.js',
defaultExtension: 'js'
},
'@angular/compiler': {
main: 'bundles/compiler.umd.js',
defaultExtension: 'js'
},
'@angular/common': {
main: 'bundles/common.umd.js',
defaultExtension: 'js'
},
'@angular/platform-browser-dynamic': {
main: 'bundles/platform-browser-dynamic.umd.js',
defaultExtension: 'js'
},
'@angular/platform-browser': {
main: 'bundles/platform-browser.umd.js',
defaultExtension: 'js'
},
rxjs: {
defaultExtension: 'js'
}
}
});
//main entry point
import {bootstrap} from '@angular/platform-browser-dynamic';
import {App} from './app';
bootstrap(App, [])
.catch(err => console.error(err));
//our root app component
import {Component} from '@angular/core';
import {SearchPipe} from './search-pipe';
@Component({
selector: 'my-app',
providers: [],
template: `
<label>Unfiltered list</label>
<div *ngFor="let auto of myAutos">
<span>{{auto.brand}}</span>
<span>{{auto.model}}</span>
</div>
<br>
<input type="text" [(ngModel)]="queryString" placeholder="Filter by..">
<br>
<br>
<label>Filtered list:</label>
<br>
<div *ngFor="let filteredAuto of filteredAutos | SearchPipe:queryString">
<span>{{filteredAuto.brand}}</span>
<span>{{filteredAuto.model}}</span>
</div>
`,
directives: [],
pipes: [SearchPipe]
})
export class App {
myAutos = autos
filteredAutos = autos
queryString: string = "";
constructor() {
}
}
const autos: Object[] = [
{
"brand": "Suzuki",
"condition": "polovno",
"salesman": "Automotive",
"model": "Vitara"
},
{
"brand": "Ford",
"condition": "polovno",
"salesman": "Automotive",
"model": "Focus"
},
{
"brand": "Chevrolet",
"condition": "polovno",
"salesman": "Automotive",
"model": "Volt"
},
{
"brand": "Toyota",
"condition": "polovno",
"salesman": "Automotive",
"model": "Camry"
}]
import {Pipe} from '@angular/core';
@Pipe({
name: 'SearchPipe'
})
export class SearchPipe {
transform (value, queryString) {
if (value==null) {
return null;
}
if (value=="") {
return null;
}
if(queryString !== undefined){
return value.filter(item=>item.model.toLowerCase().indexOf(queryString.toLowerCase()) !== -1);
}else{
return value;
}
}
}