我在這里遇到 typeError<p *ngIf="formValue.controls['{{obj.name}}'].invalid但是當我像這樣硬編碼時*ngIf="formValue.controls['uname'].invalid它作業正常。
這里有什么問題?
<span *ngFor="let obj of toolData">
<span [ngSwitch]="obj.type">
<span *ngSwitchCase="'text'">
<label for="{{obj.name}}">{{obj.label}}</label>
<input type="text" id="{{obj.name}}" name="{{obj.name}}" formControlName="{{obj.name}}" value="{{obj.value}}" required="{{obj.required}}" />
<p *ngIf="formValue.controls['{{obj.name}}'].invalid && formValue.controls['{{obj.name}}'].touched" class="text-danger">Value required</p>
</span>
</span>
</span>
工具資料
toolData=[
{"type":"text","name":"uname","label":"User Name","value":"user name","required":true},
{"type":"number","name":"pval","label":"P val","value":"3","min":0,"max":100,"required":true},
]
uj5u.com熱心網友回復:
ngIf計算寫在里面的運算式。您不必在那里使用字串插值。使用如下運算式。
這個jsfiddle 將展示一個示例實作。
它應該是
*ngIf="formValue.controls[obj.name].invalid && formValue.controls[obj.name].touched"
所以你的模板將是。
<span *ngFor="let obj of toolData">
<span [ngSwitch]="obj.type">
<span *ngSwitchCase="'text'">
<label for="{{obj.name}}">{{obj.label}}</label>
<input type="text" id="{{obj.name}}" name="{{obj.name}}" formControlName="{{obj.name}}" value="{{obj.value}}" required="{{obj.required}}" />
<p *ngIf="formValue.controls[obj.name].invalid && formValue.controls[obj.name].touched" class="text-danger">Value required</p>
</span>
</span>
</span>
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/390674.html
標籤:javascript 有角的
上一篇:找不到名稱為“...”的管道-Angular(2 )
下一篇:訪問物件的屬性
