here开始,我试图通过在 Angular 绑定(bind)中使用javascript reduce函数来求和对象数组的特定属性。

零件

totals: total[] = [{itemCount:1},{itemCount:2},{itemCount:3}, {itemCount:4}];

的HTML
<div>{{ totals.map(t => t.itemCount).reduce((a, b) => a + b, 0) }}</div>

有了上面的,我得到错误:“绑定(bind)不能包含分配”

stackblitz mockup

提前致谢

编辑

我已将@quirimmo提供的答案标记为正确,但我也想解决@jo_va的答案。

我觉得在组件内部提供 Angular 方法是正确的方法@quirimmo,但是在我的情况下,组件是根据客户端请求进行JIT编译的,目前,我仍然不确定如何在该组件中动态添加该方法施工。这使我进入HTML内部的Expression方法,并有意识地避免了@jo_va的最佳实践答案。

我的解决方法是将服务作为对象传递给组件,并将方法放在该服务中以供引用。

感谢您的帮助。

最佳答案

在组件内部定义一个函数,该函数返回减小的值,并在该组件的绑定(bind)调用中定义该函数:

const totals = [{itemCount:1},{itemCount:2},{itemCount:3}, {itemCount:4}];

console.log(totals.reduce((acc, val) => acc += val.itemCount, 0));

09-25 18:55