gpt4 book ai didi

angular - 仅计算 Angular Material 选择列表的选定值

转载 作者:行者123 更新时间:2023-12-03 18:40:16 24 4
gpt4 key购买 nike

我有一个简单的 Angular Material 选择列表,其中包含一些值。

我的要求是仅计算选定(检查)值的总和(然后,如果价格超过某个金额,则对价格应用折扣)。

我相信它一定很容易,但我是 Angular 和 Material 组件的新手,不知何故在谷歌或这里找不到我想要的东西......我的代码如下:

HTML

 <mat-selection-list #options>
<mat-list-option *ngFor="let option of optionArray">
{{option.name}} - ${{option.price}}

</mat-list-option>
</mat-selection-list>

<p>
You have selected {{options.selectedOptions.selected.length}} items with total sum of $ {{ }}. </p>
<p *ngIf="">
Your discount is 10%. </p>

TS
interface Options {
name: string;
price: number;
}

optionArray: Options[] = [
{
name: 'Item 1',
price: 4000
},
{
name: 'Item 2',
price: 8000
},
{
name: 'Item 3',
price: 3500
},
{
name: 'Item 4',
price: 500
}
]

先感谢您!

最佳答案

将模型和更改事件附加到您的 mat-selection-list 元素
然后,您可以使用 javascript 方法:map、reduce。

HTML:

<mat-selection-list #options [(ngModel)]="selectedOptions" (ngModelChange)="onSelectedOptionsChange($event)">
<mat-list-option *ngFor="let option of optionArray">
{{option.name}} - ${{option.price}}
</mat-list-option>
</mat-selection-list>

<p>
You have selected {{selectedOptions.selected.length}} items with total sum of $ {{ totalSum }}. </p>
<p *ngIf="..."> Your discount is 10%. </p>

TS Controller :
onSelectedOptionsChange() {
this.totalSum = this.selectedOptions
.map((option: Options) => option.price)
.reduce((priceA: number, priceB: number) => priceA + priceB)
}

希望这可以帮助。

关于angular - 仅计算 Angular Material 选择列表的选定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60902037/

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