Angular2 / 4 - Как добавить поля ввода из TemplateRef в форму внутри компонента?

У меня есть этот компонент с этим шаблоном:

@Component({
    selector: 'form-component',
    template:`
        <form #form="ngForm" (ngSubmit)="formComponentSubmit(form)">
            <ng-container #tmlContainer></ng-container>
            <button type="submit">Component form submit</button>
        </form>`
})
export class FormComponent implements OnInit{
    @ViewChild('tmlContainer', {read: ViewContainerRef}) tmlContainer;
    @Input() templateIn: TemplateRef<any>;

    ngOnInit() {
        this.tmlContainer.insert(this.templateIn.createEmbeddedView(null));
    }

    formComponentSubmit(form) {
        console.log('Component', form)
    }
}

Мне нужно знать, как добавить поля ввода в TemplateRef и добавить их в свою форму.

// редактировать Поля ввода должны существовать только в форме внутри компонента, а не в форме, которая находится в основном приложении.

Вы можете проверить пример по этой ссылке: https://plnkr.co/edit/cWWxRUlMfR6ecNbga8Y7?p=preview


person Rhino    schedule 25.10.2017    source источник
comment
Вы искали в Google? blogs.ibs.com/2016/09/23/angular -2-templateref-usage Это то, что вам нужно?   -  person KeyMaker00    schedule 25.10.2017
comment
Вот ваше решение stackoverflow.com/questions/46849570/   -  person yurzui    schedule 25.10.2017
comment
@ KeyMaker00 Да, я погуглил. Ссылка, которую вы предоставили, просто учит, как использовать ng-template, и он уже работает. Проблема заключается в добавлении полей ввода, имеющихся в этом шаблоне, в мою форму.   -  person Rhino    schedule 25.10.2017
comment
@yurzui Спасибо! Я попытаюсь реализовать второй случай, который вы сказали, потому что первый я не могу использовать, потому что поля ввода не должны быть частью формы в основном приложении.   -  person Rhino    schedule 25.10.2017
comment
Я забыл сказать, что поля ввода, добавленные в шаблон, нельзя было добавить в форму в основном приложении.   -  person Rhino    schedule 25.10.2017
comment
тебе удалось это решить? @ Носорог   -  person Avij    schedule 21.02.2018
comment
К сожалению нет. Я много чего пробовал, но на самом деле никто не работает, поэтому мне пришлось отказаться.   -  person Rhino    schedule 04.04.2018