gpt4 book ai didi

javascript - 如何在 Angular 中动态生成不同的变量?

转载 作者:行者123 更新时间:2023-12-02 21:12:39 25 4
gpt4 key购买 nike

我选择了两个复选框,第一个 div 中的 claim 总额中的金额正在计算,但第二个 div 中的金额也正在计算中。原因我知道;这是因为 div 是使用数组创建的,并且我有一个公共(public)变量。现在的问题是如何创建动态变量?

enter image description here

在下面的代码中,您会发现 {{claimed}} 这是公共(public)变量,我需要它是动态的:

<p>Total Claimed: [<span [ngClass]="{'text-success': claimed <= d.program_max_limit, 'text-warning': claimed > d.program_max_limit}">{{claimed | number : '2.'}}&nbsp;</span> Of {{d.program_max_limit | number : '2.'}}]</p>

组件.ts这是计算部分的函数:

  calc(event,val, id) {
console.log(val,id)
var i=0;
if(id == event.target.value){
if(event.target.checked ){
this.claimed = parseInt(this.claimed) + parseInt(val);
if (this.claimed > this.max_amount) {
this.push.showError("You Have Reached the Maximum Limit");
this.isDisabled = true;
this.checkForm.reset();
this.claimed = 0;
} else {
this.isDisabled = false;
}
} else {
this.claimed = parseInt(this.claimed) - parseInt(val);
}

}

最佳答案

定义一个 bool 类型的变量数组并在表中使用。

check:boolean[]=[]; //<--see that you equal to an array

我想你有一些喜欢

<tr *ngFor="let item of listItems;let i=index">
<td>{{item.invoiceAmmount}}</td>
...
<td><input type="checkbox" [(ngModel)]="check[i]"></td>
</tr>

然后你可以使用 getter 来总计

get total()
{
let total=0;
this.listItems.forEach((x,index)=>{
if (check[index])
total+=x.invoiceAmmount;
})
return total;
}

在你的 .html 中

Total:{{total}}
<div *ngIf="total>max_ammount">You has execeded tha ammout!</div>

注意:如果你不想使用 getter,你可以使用

<td><input type="checkbox" [ngModel]="check[i]"
(ngModelChange)="check[i]=$event;getTotal()">
</td>

getTotal() //<--your function getTotal
{
let total=0;
this.listItems.forEach((x,index)=>{
if (check[index])
total+=x.invoiceAmmount;
})
this.total=total //<--store the total in a variable "total"
}

关于javascript - 如何在 Angular 中动态生成不同的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61047080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com