<!DOCTYPE html>
<html>
<head>
<title>angular2 playground</title>
<link rel="stylesheet" href="style.css" />
<script>document.write('<base href="' + document.location + '" />');</script>
<script src="https://unpkg.com/zone.js@0.6.21/dist/zone.js"></script>
<script src="https://unpkg.com/reflect-metadata@0.1.3/Reflect.js"></script>
<script src="https://unpkg.com/systemjs@0.19.31/dist/system.js"></script>
<script src="https://unpkg.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
},
paths: {
'npm:': 'https://unpkg.com/'
},
//map tells the System loader where to look for things
map: {
'app': './src',
'@angular/core': 'npm:@angular/core/bundles/core.umd.js',
'@angular/common': 'npm:@angular/common/bundles/common.umd.js',
'@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
'@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
'@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
'@angular/http': 'npm:@angular/http/bundles/http.umd.js',
'@angular/router': 'npm:@angular/router/bundles/router.umd.js',
'@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
'@angular/core/testing': 'npm:@angular/core/bundles/core-testing.umd.js',
'@angular/common/testing': 'npm:@angular/common/bundles/common-testing.umd.js',
'@angular/compiler/testing': 'npm:@angular/compiler/bundles/compiler-testing.umd.js',
'@angular/platform-browser/testing': 'npm:@angular/platform-browser/bundles/platform-browser-testing.umd.js',
'@angular/platform-browser-dynamic/testing': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic-testing.umd.js',
'@angular/http/testing': 'npm:@angular/http/bundles/http-testing.umd.js',
'@angular/router/testing': 'npm:@angular/router/bundles/router-testing.umd.js',
'rxjs': 'npm:rxjs'
},
//packages defines our app package
packages: {
app: {
main: './main.ts',
defaultExtension: 'ts'
},
rxjs: {
defaultExtension: 'js'
}
}
});
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
import {AppModule} from './app.module';
console.log(AppModule);
platformBrowserDynamic().bootstrapModule(AppModule)
/*import { provideRouter, RouterConfig } from '@angular/router';
bootstrap(AppComponent, [
provideRouter([{
path: 'home',
component: Home,
children: [
{ path: 'page1', component: Page1 },
{ path: 'page2', component: Page2, outlet: 'route1' },
{ path: 'page3', component: Page3, outlet: 'route2' }
]
}
])
]); */
import { Component } from '@angular/core';
import { Router } from '@angular/router';
@Component({
selector: 'my-app',
template: `<h1>Angular 2 Multiple router outlet</h1>
<a [routerLink]="['/home', {outlets: {'route1': ['page1'],'route2': ['page2'], 'route3': ['page3'] }}]"> Homepage with 3 routes </a>
<div>
<router-outlet></router-outlet>
</div>`
})
export class AppComponent {}
@Component({
selector: 'home',
template: `
<h2>You're on homepage</h2>
<a [routerLink]="['/articles', {outlets: {'route1': ['article1'],'route2': ['article2'] }}]"> Go to articles page </a>
<router-outlet></router-outlet>
<router-outlet name="route1"></router-outlet>
<router-outlet name="route2"></router-outlet>
<router-outlet name="route3"></router-outlet>`
})
export class HomeComponent {
constructor(router: Router) {
// router.navigateByUrl('/home/(page1//route1:page2//route2:page3)');
//router.navigateByUrl('/articles/(route1:article1//route2:article2)');
}
}
@Component({
selector: 'layout-cmp',
template: ``
})
export class LayoutComponent {}
@Component({
selector: 'page1',
template: `page1`
})
export class Page1Component {}
@Component({
selector: 'page2',
template: `page2`
})
export class Page2Component {}
@Component({
selector: 'page3',
template: `page3`
})
export class Page3Component {}
///////////////////////////////
@Component({
selector: 'articles',
template: `<router-outlet></router-outlet>
<router-outlet name="route1"></router-outlet>
<router-outlet name="route2"></router-outlet>`
})
export class ArticlesComponent {}
@Component({
selector: 'article1',
template: `article1`
})
export class Article1Component {}
@Component({
selector: 'article2',
template: `article2`
})
export class Article2Component {}
import { Component, NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import {
AppComponent,
HomeComponent,
ArticlesComponent,
LayoutComponent,
Page1Component,
Page2Component,
Page3Component,
Article1Component,
Article2Component }
from './app';
import { routing, appRoutingProviders } from './app.routing';
@NgModule({
imports: [
BrowserModule,
routing
],
declarations: [
AppComponent,
HomeComponent,
ArticlesComponent,
LayoutComponent,
Page1Component,
Page2Component,
Page3Component,
Article1Component,
Article2Component
],
providers: [
appRoutingProviders
],
bootstrap: [ AppComponent ]
})
export class AppModule {}
import { Routes, RouterModule } from '@angular/router';
import { ModuleWithProviders } from '@angular/core';
import {
HomeComponent,
ArticlesComponent,
LayoutComponent,
Page1Component,
Page2Component,
Page3Component,
Article1Component,
Article2Component } from './app';
const appRoutes: Routes = [{
path: 'home',
component: HomeComponent,
children: [
{ path: '', component: LayoutComponent },
{ path: 'page1', component: Page1Component, outlet: 'route1' },
{ path: 'page2', component: Page2Component, outlet: 'route2' },
{ path: 'page3', component: Page3Component, outlet: 'route3' }
]
}, {
path: 'articles',
component: ArticlesComponent,
children: [
{ path: '', component: LayoutComponent },
{ path: 'article1', component: Article1Component, outlet: 'route1' },
{ path: 'article2', component: Article2Component, outlet: 'route2' }
]
}, {
path: '',
redirectTo: '/home',
pathMatch: 'full'
},
];
export const appRoutingProviders: any[] = [
];
export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);