#angular #angular6 #angular-reactive-forms
#angular #angular6 #угловые реактивные формы
Вопрос:
Я хочу сгенерировать реактивную форму Angular 6 из JSON во время выполнения. Мне также нужны действия на уровне полей, например, если это выпадающий список, чем я могу выполнить onchange
событие, и для других полей нам также нужна та же функция. Я искал в сети, но не смог найти решение.
Комментарии:
1. Что вы пробовали до сих пор? Вы смотрели на этот пример из Angular docs (он показывает в значительной степени именно то, что вы хотите)?
2. Я пробовал с ‘ medium.com/@mail.bahurudeen / … ‘ссылка .. и возможность сгенерировать форму .. но проблема в том, что я могу вызвать какое-то пользовательское событие из кнопки или любого другого поля…
3. Этот вопрос довольно краткий и пришел без объяснений после того, как были сделаны запросы на ясность. Я постараюсь пока отложить ее.
Ответ №1:
допустим, это ваши данные json,
data= {name:'name',adress:'some data'}
затем вы можете сделать так
constructor(private fb:FormBuilder){}
ngOnInit() {samplefb=this.fb.group(userForm:this.fb.group({}));
//after getting data i mean,service.getdata().toPromise().then(your code)
(<FormGroup>this.samplefb.get('userForm')).addControl('name',this.fb.control(data.name));
(<FormGroup>this.samplefb.get('userForm')).addControl('address',this.fb.control(data.address));
}
надеюсь, это сработает!
Ответ №2:
Используйте ngFor
и ngIf
для итерации JSON и отображения правильных полей.
<div *ngFor="let item of items">
<div *ngIf="item.type === 'dropdown'">...</div>
<div *ngIf="item.type === 'otherType'"> </div>
</div>
Для получения дополнительной информации перейдите по этим ссылкам:
Комментарии:
1. Не совсем то, что он ищет, imo. Он хочет «преобразовать» данные JSON в угловую форму.
2. @Zooly: Если это так, я прошу прощения, но для меня это неясно с предоставленной информацией.
3. @Zooly: учитывая его новый комментарий, он пытается сделать именно то, что я опубликовал.