Mercurial > hg > ng2-query-ismi
view app/query-app.component.ts @ 46:1f3fed01aef6 ng2-final
Starting 'ng2-final' branch
author | casties |
---|---|
date | Fri, 17 Mar 2017 18:11:30 +0100 |
parents | dc4f0541f04d |
children |
line wrap: on
line source
import {Component} from '@angular/core'; import {HTTP_PROVIDERS} from '@angular/http'; import {QueryState} from './query-state'; import {QueryStep} from './query-step'; import {QueryService} from './query.service'; import {NormalizationService} from './normalization.service'; import {QuerySelectComponent} from './query-select.component'; //import {QueryResultComponent} from './query-result.component'; import {QueryResultTableComponent} from './query-result-table.component'; @Component({ selector: 'query-app', template: ` <div class="container"> <h1>ISMI-Lab Query Builder</h1> </div> <div class="container"> <div>Select a query step:</div> <query-select *ngFor="let step of queryStepList; let i=index;" [queryStep]="step" [index]="i" (queryChanged)="onQueryChanged($event)"></query-select> <div> <button (click)="addQueryStep()">add step</button> <button (click)="removeQueryStep()">remove step</button> </div> </div> <div class="container"> <query-result *ngIf="queryState?.results" [resultInfo]="queryState.resultInfo" [queryState]="queryState"> </query-result> </div> `, directives: [QuerySelectComponent, QueryResultTableComponent], providers: [QueryService, NormalizationService, HTTP_PROVIDERS] }) export class QueryAppComponent { public queryState: QueryState; public queryStepList: string[]; constructor(private _queryService: QueryService) { this._queryService.setup(); this.queryStepList = []; this.addQueryStep(); } addQueryStep() { this.queryStepList.push('step'); } removeQueryStep() { this.queryStepList.pop(); this._queryService.state.steps.pop(); } onQueryChanged(event: any) { console.debug("app.onquerychanged! event=", event); this._queryService.runQuery(); this.queryState = this._queryService.getState(); } }