オプション選択の値を後でロジック用にコンポーネント クラスに戻そうとしています。ただし、ビューでの値をオプションとしてハードコーディングした場合でも、未定義として返されます。[value]="unit"
それを渡すと、未定義として返されますonModelChange(unit)
。基本的に、フォーム グループ インスタンスに値を与える必要がありますが、そのフィールドの値を取得して別のフィールドのロジックを実行する必要もあります。
新しい求人情報を見る
<div class="card container form-container">
<div class="row">
<div class="col-md-12">
<form (ngSubmit)="createJobEntry(job_entry)"
#jobEntryForm="ngForm">
<div class="form-group">
<div class="dropdown" dropdown>
<label class="label-text" for="material" >Material</label>
<select class="form-control"
(ngModelChange)="onMaterialChange($event)"
required
id="material"
name="material"
[(ngModel)]="job_entry.material" >
<option *ngFor=" let m of materials" [ngValue]="m"> {{
m.product_name }}
</option>
</select>
</div>
</div>
<div class="form-group">
<label class="form-group" for="unit" >Unit</label>
<select class="form-control" id="unit" name="unit" (onModelChange)="onUnitChange(unit)" [(ngModel)]="job_entry.units">
<option [value]="cm">centimeters</option>
<option [value]="inch">inches</option>
</select>
</div>
クラス
job_entry : JobEntry = <JobEntry>{};
ngOnInit() {
this.job_entry = {
id: null ,
client: '',
material: '',
size_width: 0 ,
size_height: 0,
units: '',
margin: 0,
runs: 0,
prints: 0,
originals: 0,
per_print: 0,
discount: 0,
price: 0
}
onMaterialChange(material) {
alert(material.sell_per_sqm)
}
onUnitChange(unit) {
alert(unit)
}
コンソールでもこれを取得します:
dom_renderer.ts:311 The specified value "undefined" is not a valid
number. The value must match to the following regular expression: -?
(\d+|\d+\.\d+|\.\d+)([eE][-+]?\d+)?
ここで何が起こっているのか誰でも理解できますか?