Использование Injector Class вместо класса ReflectiveInjector - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь динамически загружать данные в угловой. В моем подходе я использовал приведенный ниже код для загрузки данных -

 const inputProviders = Object.keys(data.inputs).map(inputName => {
  return { provide: inputName, useValue: data.inputs[inputName] };
});
const resolvedInputs = ReflectiveInjector.resolve(inputProviders);

const injector = ReflectiveInjector.fromResolvedProviders(
  resolvedInputs,
  this.cardComponent.parentInjector
);

const componentType = this.content.resolve(data.component);
const factory = this.resolver.resolveComponentFactory(componentType);

const component = factory.create(injector);

this.cardComponent.insert(component.hostView);

Линт указал, что ReflectiveInjector будет амортизироваться. Как мне использовать Injector, чтобы мой текущий код работал правильно. Я попробовал подход, упомянутый на следующих страницах, но он не сказал о методах resol () и fromResolvedProviders ().

Ссылка 1 Ссылка 2

1 Ответ

0 голосов
/ 07 сентября 2018

Я нашел ответ на это.Ниже приведен код, который я использовал -

 const inputProviders = Object.keys(data.inputs).map(inputName => {
  return { provide: inputName, useValue: data.inputs[inputName] };
});

const injector = Injector.create(
 { providers: inputProviders,
  parent : this.cardComponent.parentInjector
});

const componentType = this.content.resolve(data.component);
const factory = this.resolver.resolveComponentFactory(componentType);

const component = factory.create(injector);

this.cardComponent.insert(component.hostView);

Подробнее можно прочитать здесь 1 2

...