【问题标题】:Knockout subscribe: How to avoid two calls in subscribe when the subscribed observable is cleaned?Knockout subscribe:订阅的 observable 被清理时如何避免两次调用 subscribe?
【发布时间】:2012-07-04 10:14:24
【问题描述】:

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

在下一个小提琴中显示如何调用 2 次 subscribe(对于 observableOne),这是因为我需要 observable(即监视订阅)处于初始状态。

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

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

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

【问题讨论】:

    标签: knockout.js subscribe


    【解决方案1】:

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

    要解决这个问题...而不是设置 observableTwo,将其置于超时状态...

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

    关于如何抑制递归通知,我没有看到任何“官方”方式。因此,您执行此操作的方式,或者您可能使用标志的其他变体,或者可能想出一个通用的包装函数来为您整理它。

    【讨论】:

    • Fiddle 是一种显示行为的简单方法,但您的修复方法是正确的!关于不存在对这种行为的支持,恐怕你也是对的。希望将来可以使用 ko 提供一种更清洁的方式。谢谢你,我真的很欣赏你的观点基思!
    猜你喜欢
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多