Я нахожусь в процессе изучения структуры c. Я собираю JSON для формирования системы, я знаю, что есть некоторые пакеты, которые справляются с этим, но я бы хотел создать простой. В настоящий момент он прекрасно работает, однако мне было интересно, есть ли способ динамически выбирать, какие входы я собираюсь использовать. В идеале я мог бы определить входные данные в теге html, например: однако это не так.
Я работал над этим, используя операторы ngIf, как вы можете видеть ниже:
<ion-card *ngFor="let gf of generatedForm">
<h1>{{gf.slug}}</h1>
<ion-item>
<ion-label>{{gf.data.label}}</ion-label>
<ng-container *ngIf="gf.data.type === 'select'">
<ion-select multiple={{gf.data.multiple}} placeholder="Select One">
<ion-select-option *ngFor="let gfs of gf.schema.enum" value={{gfs}}>{{gfs}}</ion-select-option>
</ion-select>
</ng-container>
<ng-container *ngIf="gf.data.type === 'textarea'">
<ion-label position="floating">Description</ion-label>
<ion-textarea></ion-textarea>
</ng-container>
<ng-container *ngIf="gf.data.type !== 'textarea' || gf.data.type !== 'select'">
<ion-input type={{gf.data.type}}></ion-input>
</ng-container>
</ion-item>
</ion-card>
Как я уже сказал, он работает хорошо, но мне действительно не нравится, как я делаю это и было интересно, есть ли более изощренный способ сделать это, а не операторы if для каждого типа входного тега. Теги, такие как текст, дата и время, работают внутри тега <ion-input-type="type>
, что замечательно, но так как textarea и select - это разные теги, это невозможно сделать с помощью этого.
Итак, как я могу это уточнить? Извините, если я упускаю очевидное, я просто трепещу здесь. Файл машинописи страницы использует сервис, который я построил для форматирования данных JSON, которые я извлекаю и возвращаю, поэтому я могу добавлять определенные поля и манипулировать этими данными, если это необходимо. Я не буду публиковать этот код здесь, но данные, которые я могу использовать, включают в себя такие параметры, как тип ввода, требуемый, метка, множественный выбор и т. Д. c.
Спасибо!