从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));