UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

94 lines (93 loc) 3.46 kB
import { ViewContainerRef, TemplateRef } from 'angular2/core'; export declare class SwitchView { private _viewContainerRef; private _templateRef; constructor(_viewContainerRef: ViewContainerRef, _templateRef: TemplateRef); create(): void; destroy(): void; } /** * Adds or removes DOM sub-trees when their match expressions match the switch expression. * * Elements within `NgSwitch` but without `NgSwitchWhen` or `NgSwitchDefault` directives will be * preserved at the location as specified in the template. * * `NgSwitch` simply inserts nested elements based on which match expression matches the value * obtained from the evaluated switch expression. In other words, you define a container element * (where you place the directive with a switch expression on the * `[ngSwitch]="..."` attribute), define any inner elements inside of the directive and * place a `[ngSwitchWhen]` attribute per element. * * The `ngSwitchWhen` property is used to inform `NgSwitch` which element to display when the * expression is evaluated. If a matching expression is not found via a `ngSwitchWhen` property * then an element with the `ngSwitchDefault` attribute is displayed. * * ### Example ([live demo](http://plnkr.co/edit/DQMTII95CbuqWrl3lYAs?p=preview)) * * ```typescript * @Component({ * selector: 'app', * template: ` * <p>Value = {{value}}</p> * <button (click)="inc()">Increment</button> * * <div [ngSwitch]="value"> * <p *ngSwitchWhen="'init'">increment to start</p> * <p *ngSwitchWhen="0">0, increment again</p> * <p *ngSwitchWhen="1">1, increment again</p> * <p *ngSwitchWhen="2">2, stop incrementing</p> * <p *ngSwitchDefault>&gt; 2, STOP!</p> * </div> * * <!-- alternate syntax --> * * <p [ngSwitch]="value"> * <template ngSwitchWhen="init">increment to start</template> * <template [ngSwitchWhen]="0">0, increment again</template> * <template [ngSwitchWhen]="1">1, increment again</template> * <template [ngSwitchWhen]="2">2, stop incrementing</template> * <template ngSwitchDefault>&gt; 2, STOP!</template> * </p> * `, * directives: [NgSwitch, NgSwitchWhen, NgSwitchDefault] * }) * export class App { * value = 'init'; * * inc() { * this.value = this.value === 'init' ? 0 : this.value + 1; * } * } * * bootstrap(App).catch(err => console.error(err)); * ``` */ export declare class NgSwitch { private _switchValue; private _useDefault; private _valueViews; private _activeViews; ngSwitch: any; } /** * Insert the sub-tree when the `ngSwitchWhen` expression evaluates to the same value as the * enclosing switch expression. * * If multiple match expression match the switch expression value, all of them are displayed. * * See {@link NgSwitch} for more details and example. */ export declare class NgSwitchWhen { private _switch; constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef, ngSwitch: NgSwitch); ngSwitchWhen: any; } /** * Default case statements are displayed when no match expression matches the switch expression * value. * * See {@link NgSwitch} for more details and example. */ export declare class NgSwitchDefault { constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef, sswitch: NgSwitch); }