Knockout订阅:如何清除订阅的observable时订阅中的两个调用?

时间:2012-07-03 21:42:57

标签: knockout.js subscribe

我正在试图弄清楚如何以更清晰的方式避免订阅的递归。

在接下来的小提示中,如何调用subscribe 2次(对于observableOne),这种情况发生了,因为我需要在初始状态下使用observable(即监视订阅)。

可以通过“if”条件(observableTwo)来避免,但我想知道是否某些函数执行此任务而不是“if”条件。我尝试使用cleanNode但不起作用。

这是小提琴: http://jsfiddle.net/wabe/nLYyf/

我不想取消订阅observable,因为它应该在通话后收听。

1 个答案:

答案 0 :(得分:1)

问题的一部分,如果您设置了设置,它似乎不会触发数据绑定,因此复选框可能会以错误的状态结束。

修复此问题...而不是设置observableTwo,将其置于超时...

setTimeout(function(){ self.observableTwo(''); },0);

如何抑制递归通知,我没有看到任何“官方”方式。所以你正在这样做的方式,或者你可能使用标志的其他变体,或者可能想出一个通用的包装函数来为你排序。