Tutaj mam textbox w * ngfor = "Niech ABC w Apple; Let I = indeks"

<tr  *ngFor="let abc in Apple;let i = index">

<td>        <input matInput  name="UnitofPrice"  [(ngModel)] = "BillofQty[i]">
</td>
<td>{{BillofQty[i]+1}}

Tutaj dostaję się, jakby wejdę do 12, jego przyjeżdża jako 121

0
sus Sam 28 luty 2019, 15:03

2 odpowiedzi

Najlepsza odpowiedź

Spróbuj użyć

<td>
   {{BillofQty[i]*1 + 1*1}}
</td>
1
Suraj Kumar 28 luty 2019, 12:12

Powód, dla którego dzieje się, ponieważ wartości pochodzące z pola wejściowego są zawsze ciągi. Więc Billofqty [I] jest ciągiem. I za pomocą operatora + na łańcuchu powoduje, że dwie wartości są łączone. Najpierw musisz przekonwertować tę wartość na numer.

Jeśli nie obchodzi cię, jeśli jest zapisany jako ciąg lub numer, mógłbyś po prostu umieścić: {{+BillofQty[i]+1}} lub {{Number(BillofQty[i])+1}}. Konwertuje wartość ciągu w Bilofqty [I] do numeru.

Jeśli chcesz zapisać wartość jako numer bezpośrednio, prawdopodobnie będziesz musiał podzielić swój [(ngModel)] do [value]="BillofQty[i]" i (ngModelChange)="yourMethod(i)", gdzie przekonwertowanie wartości na numer w YourMethodzie, a następnie zapisz go to.billofqty [i].

1
Emmy 28 luty 2019, 12:24