Я пытаюсь создать построитель форм, используя angular 2. Самый простой пример:
this.fields = [{name: 'Name', type: 'text'}, {name: 'Age', type: 'number'}];
Но я также хочу поддерживать пользовательские элементы вроде:
this.fields = [
{name: 'Name', type: text},
{name: 'Age', type: 'custom', customid: 'Ctl1'},
{name: 'Whatever', type: 'custom', customid: 'Ctl2'}
];
// template:
<super-form [fields]="fields">
<Ctl1><input type="number" ...><Ctl1>
<Ctl2><whaterver-control ...><Ctl2>
</super-form>
В моем компоненте компоновщика формы у меня есть что-то вроде:
<div *ngFor="let f of fields">
<div [ngSwitch]="f.type">
<span *ngSwitchWhen="'custom'">
<ng-content select="f.customid"></ng-content>
</span>
</div>
</div>
Но, учитывая, что я здесь, это явно не работает. Это ограничение ng2? Если это так, я думаю, что я мог бы жестко указать 5 необязательных элементов контента и проверить, указаны ли они и не имеют динамические выделения, но это взломать.
Приветствия