我可能没有很好地解释这个......
我正在使用微风 js 实现一个实体,该实体包含近 100 个浮点字段。这些是计算结果字段,其中有 4 个单独的部分,然后是总计,并且重复 19 次。所以 19 x 5 = 95 个字段,因此“接近 100”。
基本上是:
calculationResult1_materials
calculationResult1_processes
calculationResult1_packaging
calculationResult1_transport
calculationResult1_total
calculationResult2_materials
calculationResult2_processes
calculationResult2_packaging
calculationResult2_transport
calculationResult2_total
calculationResult3_materials
etc...
看起来很明显,“总计”字段包含其他 4 个部分的总和,但也被存储,因为有一个仅访问该字段的遗留系统,这可以防止每次有人想要查看总计时都必须完成总和.
由于微风将总字段具体化为与其他字段一样的普通可观察对象,这意味着每次我为任何计算重新计算其他 4 个字段中的任何一个时,我都必须手动重新汇总 4 个单独的组成部分(材料,包装,处理,运输)并将结果放入“总”可观察对象中,该可观察对象绑定到显示它的html页面中的div。
虽然这可行,但让我感到震惊的是,这可能不是最有效的做事方式。显然,我可以在我的 viewmodel 中独立创建 19 个 computedObservables,其中包含每个计算的 4 个其他字段,然后绑定到该字段而不是每个实际的“total” observable,但这意味着如果字段名称发生更改,则需要手动更新代码。
有没有办法以某种方式将可观察对象重新定义为可计算的可观察对象,以便每当计算的其他 4 个部分中的任何一个发生更改时它都会自动计算,并且仍然是实体的一部分,以便之后微风保存更改?