Есть ли способ использовать форму из компонента в другом? - PullRequest
0 голосов
/ 29 марта 2019

У меня есть компонент, для которого я хочу отобразить несколько форм, каждая из которых состоит из разных компонентов. (Каждая вкладка представляет собой форму из компонента).

Это в основном компонент только с вкладками и местом для форм.

И 6 компонентов формы отображаются на соответствующей вкладке.

Link]

Я попытался просто добавить селектор компонента на компонент, но он не распознал конструктор форм.

Это компонент формы:

export class EnderecoFormComponent extends BaseFormComponent implements OnInit {
  @ViewChild('nro') nro: ElementRef;
  uf: SelectItem[];

  constructor(private formBuilder: FormBuilder,
    private http: HttpClient,
    private dropdownService: DropdownService,
    private cepService: ConsultaCepService,
    private renderer: Renderer) {
    super();
  }

  ngOnInit() {

    this.uf = [
      { label: 'SP', value: 'SP' }
    ];

    this.formulario = this.formBuilder.group({
      id: [''],
      municipio: ['', Validators.required],
      cep: ['', Validators.required],
      uf: ['', Validators.required],
      cidade: ['', Validators.required],
      bairro: ['', Validators.required],
      logradouro: ['', Validators.required],
      numero: ['', Validators.required],
      complemento: ['']
    });
  }

Это шаблон компонента, в котором я пытаюсь показать форму из другого компонента:

<section id="endereco" class="tab-panel">
               <app-endereco-form>
               </app-endereco-form>
</section>

Есть проблема: я хочу создать кнопку отправки для отправки всех форм из разных компонентов.

Из компонента, в котором я отображаю формы, у меня нет доступа к formBuilders форм, потому что они из другого компонента.

Есть ли способ получить доступ к formBuilder из другого компонента?

Спасибо. :)

Ответы [ 2 ]

0 голосов
/ 30 марта 2019

Вы также можете добавить группу форм в службу, предоставляемую в корне.

0 голосов
/ 30 марта 2019

Вы можете передать свою форму как свойство @Input ().

<child-component [form]="formulario">

Внутри child.component.ts получите свойство "form"

@Input() form: FormGroup

очень похожая проблема здесь Передача угловых реактивных FormControls дочерним компонентам

...