【问题标题】:knockout view model wrapped in observable用 observable 包裹的淘汰视图模型
【发布时间】:2013-02-14 18:05:06
【问题描述】:

为了避免在同一个 DOM 元素上多次调用 applyBindings,我将各种视图模型包装在一个 observable 中。然后只需将该可观察对象更改为我想看到的任何视图模型和 BAM……就可以了。

直到我做这样的事情:

<div data-bind="if:$data">
...some bindings in here
</div>

当我更改视图模型时,任何“if:$data”块内的绑定都不会更新。

这里有一个真正证明这一点的小提琴:http://jsfiddle.net/btrauma8/2TxME/

【问题讨论】:

    标签: view model knockout.js observable


    【解决方案1】:

    这在 KO 2.2 之前可以正常工作。在 2.2 中,我们使 ififnot 更加高效,仅在值实际在真/假之间变化时重新渲染部分。

    在很多情况下,人们会绑定if: items().length 之类的东西,并且每次添加项目时都会重新渲染整个部分。

    在您的情况下,您可以通过使用with 绑定而不是if 轻松克服这个问题。由于您绑定的是$data,因此它实际上不会更改上下文,而是会为您提供您所追求的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-15
      • 2013-07-08
      • 2012-11-09
      • 2012-11-29
      • 2015-07-07
      • 1970-01-01
      相关资源
      最近更新 更多