<!DOCTYPE html>
<html>
<head>
<title>angular2 playground</title>
<link rel="stylesheet" href="style.css" />
<script src="https://code.angularjs.org/tools/system.js"></script>
<script src="https://code.angularjs.org/tools/typescript.js"></script>
<script src="config.js"></script>
<script src="https://code.angularjs.org/2.0.0-beta.0/angular2-polyfills.min.js"></script>
<script src="https://code.angularjs.org/2.0.0-beta.0/Rx.min.js"></script>
<script src="https://code.angularjs.org/2.0.0-beta.0/angular2.min.js"></script>
<script src="https://code.angularjs.org/2.0.0-beta.0/http.min.js"></script>
<script src="https://code.angularjs.org/2.0.0-beta.0/router.min.js"></script>
<script>
System.import('app')
.catch(console.error.bind(console));
</script>
</head>
<body>
<my-app>
Loading...
</my-app>
</body>
</html>
/* Styles go here */
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" },
//packages defines our app package
packages: {
app: {
main: './app.ts',
defaultExtension: 'ts'
}
}
});
//our root app component
import {Component} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser';
import {ParentComponent} from './parent.ts';
import {ChildComponent} from './child.ts';
@Component({
selector: 'my-app',
template: `
<h2>App Component</h2>
<my-parent>
<my-child></my-child>
</my-parent>
`,
directives:[ParentComponent,ChildComponent]
})
export class AppComponent {
}
bootstrap(AppComponent).catch(err => console.error(err));
import {Component,ContentChild} from 'angular2/core';
import {ChildComponent} from './child.ts';
@Component({
selector: 'my-parent',
template: `
<div>Parent Component</div>
<ng-content></ng-content>
<p>{{child.name}}</p>
`
})
export class ParentComponent {
@ContentChild(ChildComponent)
child:ChildComponent;
}
import {Component} from 'angular2/core';
@Component({
selector: 'my-child',
template: `
<div>Child Component</div>
`
})
export class ChildComponent {
name:string = 'childName';
}