我正在ngFor
内部通过强制检查来构建动态输入字段。我使用field{{idxVar}}
构建了名称,其中idxVar
是索引,但是如何使用它来检查错误
<span [ngClass]="{'active' : field{{idxVar}}.errors}">*Mandatory</span>
<input type="text" [required]="itmVar.is_required ? 'required' : null" name="field{{idxVar}}" [(ngModel)]="user.customFields[idxVar]"
#field{{idxVar}}="ngModel">
在上面,我知道这不是错误的正确方法,但想知道正确的语法
'active' : field{{idxVar}}.errors
答案 0 :(得分:1)
对于* ngFor中的NgModel,您可以使用唯一的模板引用变量。每个输入字段都与相应的模板引用相关联,不需要数组索引。
// you definitely have to set at least the font to calculate the result
// maybe for your case you will also have to set other attributes
let attributedText = NSAttributedString(string: label.text,
attributes: [.font: label.font])
let lastLineMaxX = lastLineMaxX(message: attributedText,
labelWidth: label.bounds.width)
答案 1 :(得分:0)
尚不清楚您要做什么,但是似乎最适合您的方法是创建一个带有数字键的对象fields
,该键对应于您要检查的索引。
在您的控制器中,有一个fields
对象。
然后您的模板代码将变为
<span [ngClass]="{'active' : field[idxVar].errors}">*Mandatory</span>
<input type="text" [required]="itmVar.is_required ? 'required' : null" name="field[idxVar]" [(ngModel)]="user.customFields[idxVar]">
这是Stackblitz中的一个简单示例 https://stackblitz.com/edit/angular-p4zemy
如果此答案满足您的需求,请确保将其标记为已接受。