Angular 2: Difference between revisions
add array |
add interaction |
||
Line 89: | Line 89: | ||
bootstrap(HelloWorld); | bootstrap(HelloWorld); | ||
</syntaxhighlight> | |||
adding interaction | |||
<syntaxhighlight lang="javascript"> | |||
/// <reference path="node_modules/anguar2/ts/typings/node/node.d.ts"/> | |||
/// <reference path="node_modules/anguar2/typings/browser.d.ts"/> | |||
import {bootstrap} from "angular2/platform/browser"; | |||
import {Component} from "angular2/core"; | |||
@Component({ | |||
selector: 'trainer', | |||
template: ` | |||
<form class="ui large form segment"> | |||
<h3 class="ui header">Add a Resource</h3> | |||
<div class="field"> | |||
<label for="title">Title:</label> | |||
<input type="text" name="title" #newtitle> | |||
</div> | |||
<div class="field"> | |||
<label for="link">Link:</label> | |||
<input type="url" name="link" #newlink> | |||
</div> | |||
<div class="field"> | |||
<label for="credit">Credit:</label> | |||
<input type="number" name="credit" #newcredit> | |||
</div> | |||
<button (click)="addArticle(newtitle,newlink)" class="ui positive right floated button">Submit resource</button> | |||
</form> | |||
` | |||
}) | |||
class TrainerApp { | |||
constructor() { | |||
} | |||
addResource(title: HTMLInputElement, link: HTMLInputElement): void { | |||
console.log(`Adding article title: ${title.value} and link: ${link.value}`); | |||
} | |||
} | |||
bootstrap(TrainerApp); | |||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 19:44, 4 April 2016
Four basic libraries to include
- es6-shim (for older browsers -- standardizes behaviors across browsers)
- angular2-polyfills (for standardizations, especially with zones, promises, and reflection)
- SystemJS (module loader)
- RxJS (enables reactive programming -- tools for Observables)
<script src="node_modules/es6-shim/es6-shim.js"></script>
<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<!-- main AngularJS 2 library -->
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>
TypeScript app.ts. import {bootstrap}, and {bootstrap} is called destructuring.
/// <reference path="node_modules/anguar2/ts/typings/node/node.d.ts"/>
/// <reference path="node_modules/anguar2/typings/browser.d.ts"/>
import {bootstrap} from "angular2/platform/browser";
import {Component} from "angular2/core";
@Component({
selector: 'hello-world',
template: `
<div>
Hello world
</div>
`
})
class HelloWorld {
}
bootstrap(HelloWorld);
Adding a variable. Adding a property is new to ES5: "name: string;". Double brackets {{ are called "template-tags" (or "mustache tags"). Inside template-tags is expression.
/// <reference path="node_modules/anguar2/ts/typings/node/node.d.ts"/>
/// <reference path="node_modules/anguar2/typings/browser.d.ts"/>
import {bootstrap} from "angular2/platform/browser";
import {Component} from "angular2/core";
@Component({
selector: 'hello-world',
template: `<div>Hello, {{name}}</div>`
})
class HelloWorld {
name: string;
constructor() {
this.name = 'Felipe';
}
}
bootstrap(HelloWorld);
Array. *ngFor
/// <reference path="node_modules/anguar2/ts/typings/node/node.d.ts"/>
/// <reference path="node_modules/anguar2/typings/browser.d.ts"/>
import {bootstrap} from "angular2/platform/browser";
import {Component} from "angular2/core";
@Component({
selector: 'hello-world',
template: `
<ul>
<li *ngFor="#name of names">Hello {{name}}</li>
</ul>
`
})
class HelloWorld {
names: string[];
constructor() {
this.names = ['Ari', 'Carlos', 'Felipe', 'Nate'];
}
}
bootstrap(HelloWorld);
adding interaction
/// <reference path="node_modules/anguar2/ts/typings/node/node.d.ts"/>
/// <reference path="node_modules/anguar2/typings/browser.d.ts"/>
import {bootstrap} from "angular2/platform/browser";
import {Component} from "angular2/core";
@Component({
selector: 'trainer',
template: `
<form class="ui large form segment">
<h3 class="ui header">Add a Resource</h3>
<div class="field">
<label for="title">Title:</label>
<input type="text" name="title" #newtitle>
</div>
<div class="field">
<label for="link">Link:</label>
<input type="url" name="link" #newlink>
</div>
<div class="field">
<label for="credit">Credit:</label>
<input type="number" name="credit" #newcredit>
</div>
<button (click)="addArticle(newtitle,newlink)" class="ui positive right floated button">Submit resource</button>
</form>
`
})
class TrainerApp {
constructor() {
}
addResource(title: HTMLInputElement, link: HTMLInputElement): void {
console.log(`Adding article title: ${title.value} and link: ${link.value}`);
}
}
bootstrap(TrainerApp);