如何使用ionic动态创建具有ngModel属性的元素?
how to dynamically create element with ngModel attribute using ionic?
我正在尝试在用户单击“+”时动态创建 ion-input
元素。然后我想将输入的所有值插入到一个数组中。我创建了输入,但我无法将 [(ngModel)]
属性分配给新元素。我怎样才能做到这一点?
这是创建新元素的方法:
newElement() {
const item = document.createElement('ion-item');
const input = document.createElement('ion-input');
input.placeholder = 'شماره سریال';
input.type = 'text';
input.required = true;
input.name = 'serialNumbers';
input.className = 'input inputSerial';
input.ngModel='serialNumbers';
const div = document.getElementById('newElements');
console.log(item);
item.appendChild(input);
div.appendChild(item);
}
这是第一次加载页面时的默认输入:
<ion-item>
<ion-input
type="text"
expand="block"
placeholder="شماره سریال"
required
name="serialNumbers"
[(ngModel)]="serialNumbers"
></ion-input>
serialNumbers
数组只接受默认输入的值
您需要为此使用 angular 模板。不建议使用 angular 直接操作 DOM。请改用结构指令。
在您的组件 class 中,有一个输入数组
serialNumbers: any = [];
在组件中,
<ion-item *ngFor="let serialNumber of serialNumbers;">
<ion-input
type="text"
expand="block"
placeholder="شماره سریال"
required
name="serialNumbers"
[(ngModel)]="serialNumber"
></ion-input>
在你的newElement()
newElement(){
this.serialNumbers.push('');//default value.
}
我正在尝试在用户单击“+”时动态创建 ion-input
元素。然后我想将输入的所有值插入到一个数组中。我创建了输入,但我无法将 [(ngModel)]
属性分配给新元素。我怎样才能做到这一点?
这是创建新元素的方法:
newElement() {
const item = document.createElement('ion-item');
const input = document.createElement('ion-input');
input.placeholder = 'شماره سریال';
input.type = 'text';
input.required = true;
input.name = 'serialNumbers';
input.className = 'input inputSerial';
input.ngModel='serialNumbers';
const div = document.getElementById('newElements');
console.log(item);
item.appendChild(input);
div.appendChild(item);
}
这是第一次加载页面时的默认输入:
<ion-item>
<ion-input
type="text"
expand="block"
placeholder="شماره سریال"
required
name="serialNumbers"
[(ngModel)]="serialNumbers"
></ion-input>
serialNumbers
数组只接受默认输入的值
您需要为此使用 angular 模板。不建议使用 angular 直接操作 DOM。请改用结构指令。
在您的组件 class 中,有一个输入数组
serialNumbers: any = [];
在组件中,
<ion-item *ngFor="let serialNumber of serialNumbers;">
<ion-input
type="text"
expand="block"
placeholder="شماره سریال"
required
name="serialNumbers"
[(ngModel)]="serialNumber"
></ion-input>
在你的newElement()
newElement(){
this.serialNumbers.push('');//default value.
}