As Reno has already mentioned, you can use an injector to inject values.
For the sake of completeness, here is an example with a dynamic "title" value:
export const TITLE = new InjectionToken<string>('app.title'); 
@Component({
  selector: 'app-item',
  template: '<p>{{title}}</p>'
})
export class TitleComponent implements OnInit {
  @Input() title:string;
  constructor(@Inject(TITLE) private titleInjected: string){
  } 
  ngOnInit() {
    this.title = this.title || this.titleInjected;
  }
}
@Component({
  selector: 'app-foo',
  template: '<ng-container *ngComponentOutlet="outlet; injector: myInjector"></ng-container>'
})
export class FooComponent {
  outlet = TitleComponent;
  myInjector: Injector;
  constructor(injector: Injector){
    let title = 'My dynamic title works!';
    this.myInjector = ReflectiveInjector.resolveAndCreate([{ provide: TITLE, useValue: title }], injector);
  }
}
@NgModule({
  providers: [
    { provide: TITLE, useValue: '' }
  ]
})
export class AppModule { }