KnockOut js通过viewmodel获取所有可观察的视图

时间:2014-12-17 12:21:41

标签: javascript data-binding knockout.js

另一个Knockout.JS问题让我发疯。我有一个单一的视图模型。动态创建多个视图并动态应用绑定。现在,我试图在用户操作上动态删除绑定。但是,我需要知道在从视图模型中删除之前是否有任何观察者对特定变量感兴趣。请参阅下面的一个用例:

<div id="e1" data-bind="graph: a0001, var1: a0002, var2: a0003, var3: a0004"&nbsp;</div>
<div id="e2" data-bind="button:a0002"&nbsp;</div>

稍后用户操作,创建了一个新的div

<div id="e3" data-bind="graph:a0001"&nbsp;</div>

并且所有 a0001,a0002,a0003 都绑定到相同的视图模型 vm 。所有数据都流向不同的视图,一切都很好。

现在,在用户操作上,我想

  • 删除#e2
  • 将所有变量绑定到#e2(a0002)
  • 检查是否有任何其他元素绑定到该变量
    • 如果其他元素绑定到变量,则忽略并继续。
    • 如果没有其他元素绑定到变量,请将其从 vm
    • 中删除

因此,为了实现上述目标,我需要通过变量将所有视图(DOM元素)绑定到变量。

如果有人能给我一些想法,在没有性能影响的情况下实现同样的目标,我将不胜感激。

0 个答案:

没有答案