可视化Knockout中计算字段的依赖关系

Tom*_*lak 5 dependencies knockout.js

在knockout.js中有没有办法确定

  • 哪些值(ko.observableko.computed)以什么方式相互依赖(先例/从属)和
  • 哪些HTML节点(文本绑定,对于初学者)取决于当前值1,所以我可以在屏幕上突出显示它们.

1 这意味着我需要一种从HTML节点到连接的方式ko.subscribable,而不仅仅是视图模型ko.dataFor().这似乎也是不可能的.


我已经构建了一个类似于电子表格的Web应用程序 - 根据一组业务规则,许多数字值基于彼此.其中一些是计算的,其中一些是用户提供的.

目前我正在使用自己的JS库来完成所有依赖关系跟踪和动态屏幕更新.这有效,但我想将它与knockout.js交换,以增加多功能性和优雅.

Knockout在某处跟踪这些信息.我怎么用呢?


例如,想象一下总结几个整数的电子表格(HTML表格):

  | A  B  C
--+---------
1 | 4  1  5
2 |    2
3 |    3  8
  • 当用户点击单元格B3时,我想知道它取决于B1和B2,C3取决于它.
  • 当用户点击单元格C3时,我想知道它取决于A1,B1,C1,B2和B3.

Mic*_*est 7

为Knockout(2.0+)编写了一个插件,其主要目的是消除计算的observable的重复更新.但是由于插件替换了ko.computed对象,我还添加了获取可观察对象的依赖项/依赖项列表的功能.每个计算对象都有一个getDependencies返回一个observable数组的方法,每个observable/computed observable都有一个getDependents返回计算observable数组的方法.