1

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

在下一个小提琴中展示了如何调用 2 次订阅(对于 observableOne),这是因为我需要初始状态的可观察(即监视订阅)。

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

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

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

4

1 回答 1

1

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

解决这个问题......而不是设置 observableTwo,把它放在超时......

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

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

于 2012-07-04T02:14:24.223 回答