by Jeremy Mason
$scope.$digest();
angular.module(...)
<module>.controller(...)
noun; a part or element of a larger whole
Properties | The state of the component.disabled .value |
Methods | The behavior of the component .click() .focus() |
Events | Notifies listeners of state changes .on('click', ...) .on('change', ...) |
<media></media>
<media title="Hello {{ user.Name }}"></media>
<media [url]="media.url"></media>
<media bind-url="media.url"></media>
<media (play)="onPlay($event)"></media>
<media on-play="onPlay($event)"></media>
<media title="{{ media.title | uppercase }}"></media>
export class Pipe { // True if the value can be transformed. // False, otherwise. supports(obj): boolean; // Transforms the value. transform(obj); // Cleans up this instance. onDestroy(); }
<my-component> <label>Your name: <label> <input #name /> <button (click)="sayHello(name.value)">Say Hello</button> </my-component>
class MyComponent { sayHello(name: string) { alert('Hello ' + name + '!'); } }
<ul>
<li *ng-for="#user in users">
<span>{{ user.Name }}</span>
</li>
</ul>
<template [ng-for] #user [ng-for-of]="users">...</template>
<div *ng-if="isError">
Login failed, please try again.
</div>
<template [ng-if]="isError">...</template>
<my-component> <header> <!-- Header --> </header> <main> <!-- Content --> </main> <footer> <!-- Footer --> </footer> </my-component>
<div class="container"> <div class="header"> <content select="header"></content> </div> <div class="main-content-wrapper"> <div class="main-content"> <content select="main"></content> </div> </div> <div class="footer"> <content select="footer"></content> </div> </div>
import {Component, View, bootstrap, NgFor} from 'angular2/angular2'; import {ItemStore} from 'services/ItemStore'; @Component({ selector: 'my-app', appInjector: [ItemStore] }) @View({ templateUrl: 'templates/my-app.html', directives: [NgFor] }) class MyApp { _itemStore: ItemStore; constructor(itemStore: ItemStore) { this._itemStore = itemStore; } add($event, input) { this._itemStore.add(input.value); input.value = ''; } } bootstrap(MyApp);
class MyApp {
constructor() {
}
add($event, input) {
}
}
import {bootstrap} from 'angular2/angular2'; class MyApp { constructor() { } add($event, input) { } } bootstrap(MyApp);
import {Component, View, bootstrap, NgFor} from 'angular2/angular2';
import {ItemStore} from 'services/ItemStore';
@Component({
selector: 'my-app'
appInjector: [ItemStore]
})
@View({
templateUrl: 'templates/my-app.html',
directives: [NgFor]
})
class MyApp {
constructor(itemStore: ItemStore) {
}
add($event, input) {
}
}
bootstrap(MyApp);
@Class class MyClass { @Method myMethod(@Param myParam) { ... } }
function MyClass() {
...
}
MyClass.annotations = [
new Foo()
]
@Directive({ selector: '<css-selector>', properties: [ 'propName', 'propName: attrName', 'propName: attrName | pipe' ], events: [ '<event-name>' ] // and more ... })
import {MyService} from '...'; @Component({ // Same as @Directive appInjector: [ MyService ] // and more ... })
import {DirectiveType} from '...'; @View({ template: '<div></div>', templateUrl: 'path/to/template.html', directives: [ DirectiveType ] // and more ... })
import {MyService} from '...'; @Component({ selector: '...', appInjector: [ MyService ] }) class MyComponent { constructor(myService: MyService) { ... } }
ElementRef
ViewContainerRef
BindingPropagation
<no-decoration>
@Ancestor
@Parent
@Query
@QueryDescendants
<tabset> <tab> ... </tab> </tabset>
import {TabSet} from '...';
@Component({
selector: 'tab'
})
class Tab {
constructor(@Parent() tabs: TabSet) {
...
}
}
<form [control-group]="searchForm"> <label>Name</label> <input type="text" control="name" /> </form>
import {View} from 'angular2/angular2';
import {FormBuilder, Validators, formDirectives, ControlGroup} from 'angular2/forms';
class LoginComponent {
searchForm: ControlGroup;
constructor(builder: FormBuilder) {
this.searchForm = builder.group({
name: ["", Validators.required]
});
}
}
MyController.$routeConfig = [
{
path: '/user',
components:
{
master: 'userList',
detail: 'user'
}
}
];
<div ng-viewport="master"></div> <div ng-viewport="detail"></div>