Внедрить экземпляр FormGroup в поставщика фабрики - PullRequest
0 голосов
/ 10 марта 2019

Я пытаюсь получить конфигурацию в моем FormEngineService, причем эта конфигурация представляет собой структуру формы и DataStoreService. Я также хочу передать ссылку на Parent FormGroup (структура вложенной формы).

У меня есть пример приложения на Stackblitz: https://stackblitz.com/edit/angular-s41cfb?file=src%2Fapp%2Fconfigurations%2Fprogressive-settings%2Fcomponents%2Fprogressive-settings%2Fprogressive-settings.component.ts

@Component({
  selector: 'app-progressive-settings',
  templateUrl: './progressive-settings.component.html',
  styleUrls: ['./progressive-settings.component.css'],
  providers: [
    {
      provide: FormEngineService,
      useFactory: FormEngineFactory,
      deps: [PROGRESSIVE_SETTINGS_STRUCTURE, DataStoreService ]
    }
  ]
})
export class ProgressiveSettingsComponent implements OnInit {
  @Input() createdBy: string;
  @Input() form: FormGroup;

Как видите, существует @Input, который разрешается со ссылкой на родительскую FormGroup OnInit. Я пытаюсь создать экземпляр FormEngine через провайдера Factory, внедрить структуру формы и DataStoreService, но я также хочу передать разрешенный экземпляр формы, поступающий через @Input.

Возможно ли это, и если да, то каким будет наилучший путь? Просто для вашей информации: прежде чем я просто вызвал функцию init Сервиса FormEngine и передал все необходимые данные в OnInit. Я пытаюсь заменить это для провайдера, чтобы, когда люди используют FormEngine, им не приходилось вызывать Init.

...