示例:計算鍵盤上長度和寬度的面積。所有3個都是在accordion循環中定義的。 我可以創建n號來獲取多邊形的細節(我們使用accordion來做,因為我們需要可折疊的div)。我們需要自動計算面積,并在輸入l和b時顯示在每個多邊形的面積輸入框中。
我嘗試使用keyup函數并獲取每個索引的值。它適用于普通的div,但是當div在accordion類中或者(在循環中)時就不起作用了
<div class="accordion">
<div class="accordion-content">
<div>
length
<input [(ngModel)]="item.length" (keyup)="functiontocalculate($event)" />
</div>
<div>
breadth
<input [(ngModel)]="item.breadth" (keyup)="functiontocalculate($event)" />
</div>
<div>area <input [(ngModel)]="item.area" /></div>
</div>
</div>
要計算值(如果是簡單的微積分),您可以使用
<input readOnly [value]="(+item.length)*(+item.breadth) || ''" />
注意:& quot+& quot;之前是轉換為數值。如果結果是NaN,則顯示“”。
這樣你就不再需要什么了。
更新好,用這種方法我們不存儲區域在& quotitem & quot。
通常在提交函數中我們可以做
this.items.forEach(item=>{
item.area=(+item.length)*(+item.breadth)
})
如果我們不想這樣做,我們可以使用函數& quotkeyup & quot,但我更喜歡用ngModelChange的方式。請務必將& quotitem & quot
<input [ngModel]="item.length"
(ngModelChange)="item.length=$event;calculateArea(item)"/>
<input [ngModel]="item.breadth"
(ngModelChange)="item.breadth=$event;calculateArea(item)"/>
<input [value]="item.area" /></div>
//而在。分時(同timesharing)
calculateArea(item:any)
{
item.area=(+item.length)*(+item.breadth) || ''
}
看到ngModelChange中的$event是輸入的值
上一篇ftl 輸出json
下一篇mysql創建表的示范