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){
      }
    }

person Jack Rothrock    schedule 19.08.2016    source источник


Ответы (1)


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

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

Вот Plunker!!

person Madhu Ranjan    schedule 19.08.2016
comment
Я хочу сначала передать фиктивные данные, чтобы показать экран загрузки, а затем, как только я получу данные из API, я хочу передать их. Это возможно - person indra257; 26.05.2017