I'm planning to add a component dynamic to the DOM if show() is called. I know there is a solution with ngIf or [hidden] to hide it and use it as a directive, but I'm not a fan of this solution because I don't want to declare it in my HTML.
  import {Component} from 'angular2/core';
  import {InfoData} from '../../model/InfoData';
  @Component({
    selector: 'Info',
    templateUrl: './components/pipes&parts/info.html',
    styleUrls: ['./components/pipes&parts/info.css']
  })
  export class Info{
    infoData: InfoData;
    public show(infoData: InfoData) {
      this.infoData= infoData;
      document.body.appendChild(elemDiv); <----- Here?
    }
  }
and then I declare this as a Provider so i can call show().
  import {Component} from 'angular2/core';
  import {Info} from './components/pipes&parts/Info';
  @Component({
    selector: 'Admin',
    templateUrl: './Admin.html',
    styleUrls: ['./Admin.css'],
    directives: [Info],
    providers: [Info]
  })
  export class Admin {
    constructor(private info: Info) {
    info.show(); <---- append the Info Element to DOM
  }
 
     
     
    