import 'rxjs/add/operator/switchMap'; import { Component, OnInit, HostBinding } from '@angular/core'; import { ActivatedRoute, Params } from '@angular/router'; import { AngularmService } from '../../angularm.service'; import { slideInDownAnimation } from './animations'; import { EntityType } from '../../entitytype'; import { EntityComponent } from '../../meta/entity.component'; @Component({ selector: 'div [mgShowEntity]', template: `
`, animations: [slideInDownAnimation] }) export class ShowEntityComponent extends EntityComponent implements OnInit { @HostBinding('@routeAnimation') routeAnimation = true; @HostBinding('style.display') display = 'block'; @HostBinding('style.position') position = 'absolute'; constructor( private route: ActivatedRoute, angularm: AngularmService ) { super(angularm); } mapEntityParam(params: Params): Promise { return new Promise((resolve) => { this.angularm.findEntityType(params['entitytypename']).then( (entityType: EntityType) => { let entityPromisse = this.angularm.findUnique(entityType.singular, params['key']); resolve(entityPromisse); } ); }); } ngOnInit() { this.route.params .switchMap((params: Params) => this.mapEntityParam(params)) .subscribe( (entity: any) => { this.entity = entity; }); } }