У меня есть форма, которая должна быть заполнена основным лицом, и он также может заполнить форму для своего супруга и детей. (Picture of the form) Он работал нормально до требования детей.Динамические элементы управления в объекте typescript
Я сделал эту модель:
export class RequestForm{
model = {
main: { apellido: "", nombre: "", documento: "", sexo: "", fechaNacimiento: "", localidad: "", calle: 0, piso: 0, depto: 0, edificio: 0, telefono: "", celular: "", mail: "" },
spouse: { apellido: "", nombre: "", documento: "", sexo: "", fechaNacimiento: "", localidad: "", calle: 0, piso: 0, depto: 0, edificio: 0, telefono: "", celular: "", mail: "" },
children: [{ apellido: "", nombre: "", documento: "", sexo: "", fechaNacimiento: "", localidad: "", calle: 0, piso: 0, depto: 0, edificio: 0, telefono: "", celular: "", mail: "" }]
};
тогда, когда кнопка Finish Форма нажата, эта функция называется:
finish() {
this.model.main= {
apellido: this.titularApellido.value, nombre: this.titularNombre.value, documento: this.titularDocumento.value
, sexo: this.titularSexo.value, fechaNacimiento: this.titularFechaNacimiento.value, localidad: this.titularLocalidad.value
, calle: this.titularCalle.value, piso: this.titularPiso.value, depto: this.titularDepto.value, edificio: this.titularEdificio.value
, telefono: this.titularTelefono.value, celular: this.titularCelular.value, mail: this.titularMail.value
};
this.model.spouse = {
apellido: this.conyugeApellido.value, nombre: this.conyugeNombre.value, documento: this.conyugeDocumento.value
, sexo: this.conyugeSexo.value, fechaNacimiento: this.conyugeFechaNacimiento.value, localidad: this.titularLocalidad.value
, calle: this.titularCalle.value, piso: this.titularPiso.value, depto: this.titularDepto.value, edificio: this.titularEdificio.value
, telefono: this.conyugeTelefono.value, celular: this.conyugeCelular.value, mail: this.conyugeMail.value
};
this.persistPerson(this.model.main);
this.persistPerson(this.model.spouse);
}
Я действительно не знаю, как сделать детей контролирует динамически, а затем быть привязанным к функции финиша. Существует входное свойство ngModel, но когда я его добавляю, управление прерывается.
Thanks
PD. Я сделал это, чтобы повторить элементы управления, но я не могу установить идентификатор элементов управления, поэтому я теряю ссылку. Когда я сделал это, дети был массив, и + и - кнопка выталкивает и удалять объекты из массива
<ul style="list-style-type:decimal">
<li *ngFor="let child of children" style="display:list-item">
<table>
<tr>
<td>
<md-input textoLabel="Apellido" type="text" [disabled]="esModoVisualizacion()"
placeholder="Apellido"
style="width:130px;"></md-input>
</td>
<td>
<md-input ..
.
.
</table>
</li>
</ul>
Ваша функция 'finish' выглядит как кошмар для поддержания: DI предлагает вам взглянуть на https://angular.io/docs/ts/latest/guide/forms.html. Вы можете использовать объект, созданный формой для обработки данных формы, вместо использования огромного количества переменных, которые вы сейчас используете.Это мое предложение :) – Alex