Angular2-передача значений динамическому компоненту, созданному с помощью ComponentFactory


Я следовал совету Гюнтера Цехбауэра о том, как создавать динамические компоненты и мне было интересно, как я мог бы передать ему значения - например, дочерний компонент имеет @ input.

Используя пример plunker, приведенный в предыдущем вопросе - plunker - Как я могу передать дочернему компоненту строку, назовем ее сообщением, которое будет отображаться при нажатии кнопки "Добавить".

Вот пример того, как может выглядеть дочерний компонент:

import {Component OnChanges, Input} from '@angular/core'

    @Component({
      selector: 'hello',
      providers: [],
      template: `<h1>{{message}}</h1>`,
      directives: []
    })
    export class HelloComponent implements OnChanges {
      @Input() message:any;

      constructor() {
      }

      ngOnChanges(changes:any){
      }
    }
1 4

1 ответ:

Вы можете попробовать ниже,

  let instance  = this.viewContainerRef.createComponent(this.componentFactory, 0).instance;
  instance.message = "some text!!";

Вот это плунжер!!

Надеюсь, это поможет!!