KO Compute递归调用

时间:2012-06-08 12:55:13

标签: javascript knockout.js

我有两个下拉框。我填充第一个下拉列表的ko计算上的第二个下拉框。我有两个列表,其中一个列表中包含下拉列表中所选项目的所有可用值。在右边的列表中,用户可以选择左边的值,这些值由ko计算函数填充,当第一个或第二个下拉列表中的值发生变化时,我需要清除seletedItems数组(从右侧开始)列表),现在左侧列表中包含新值我尝试选择右侧列表中的值,但是对于数组seletedItems(我在ko计算中用removeAll清除)的每个选择调用ko compute,不知道为什么这样正在发生。给予任何帮助。

谢谢,

1 个答案:

答案 0 :(得分:0)

  

前言:我同意NikoPaolo del Mundo。如果您包含代码段,我们会更好地帮助您。


话虽如此,您表示您的computed函数意外地以递归方式调用它们。

  • 如果是这种情况,那么我建议您简化您的Knockout VM代码。
  • 重构,并支持手动订阅。

  • 尽管他们的表现力和力量很强,computed功能可能会很棘手。
  • 如果您创建的太多,可能很难预测何时会被调用。
  • 使用足够大的数据集,IE 8及更早版本将使用slow running script warning标记过于复杂的Knockout代码。