0

我的模板中有一部分不想被渲染,所以我尝试了文档建议的“controlsDescendantBindings” 。

我做了一个示例,其中模型包含两个属性,“父”和“子”。必须显示父级,但不得渲染子级。

我正在使用KO Programmatic 插件

它适用于普通绑定:http: //jsfiddle.net/vtortola/QXJVb/

它在使用模板时有效:http: //jsfiddle.net/vtortola/uKLnm/3/

并且在以编程方式使用 KO 时不起作用:http: //jsfiddle.net/vtortola/XGApK/

有人知道解决方法吗?

谢谢。

4

1 回答 1

0

两件事情。

  1. 您使用的是淘汰赛 2.0 和 jQuery tmpl。这些一起玩不好。自 2.0 以来,Knockout 就内置了自己的模板引擎。jQuery tmpl 已被弃用,我认为它的创建者也不再开发它。你不应该使用它。
  2. 您的第二把小提琴没有调用ko.applyBindings,这是必要的步骤。你的第一个工作,因为你有那个电话。

这是您的小提琴,使用模板和停止绑定。这是使用jQuery方法的小提琴

注意
Knockout 提供了自己的方法来限制绑定到特定 div。KO Programmatic 看起来有点……没必要。这是文档页面的片段:

或者,您可以传递第二个参数来定义要在文档的哪个部分搜索数据绑定属性。例如,ko.applyBindings(myViewModel, document.getElementById('someElementId'))。这将激活限制为 ID 为 someElementId 的元素及其后代,如果您希望拥有多个视图模型并将每个模型与页面的不同区域相关联,这将非常有用。

更新:

正如所承诺的那样,这些小提琴按照您的描述工作的截图。

常规方法: jsFiddle

jQuery/KO 编程方法: 在此处输入图像描述

于 2012-07-18T16:16:46.160 回答