如何在没有数据属性的运行时创建挖空数据绑定

时间:2013-10-07 03:36:54

标签: javascript jquery data-binding knockout.js javascript-framework

是否可以单独从javascript创建knockout绑定,即不编写自定义html属性?

我非常依赖现有的标记,并且无法添加knockout.js所依赖的data-bind等等(html是以编程方式生成的,并且无法访问渲染管道,请假设我'我在尝试时已经筋疲力尽了:)

我暂时追求的一个想法是在调用data-bind之前在运行时添加ko.applyBindings属性。有首选方法吗?如果它还实现类似于knockout.js if / visible的绑定,我也会接受另一个充分记录/流行/稳定的框架。

3 个答案:

答案 0 :(得分:2)

Knockout允许我们创建自定义绑定提供程序,我发现有几个lib可以帮助你做到这一点

你可以在这里找到它们:

根本不使用DOM的人:

  

https://github.com/tobio/knockout.unobtrusivebindingprovider

使用另一种方法:

  

https://github.com/rniemeyer/knockout-classBindingProvider

最后一种情况是,如果它们都不适合您的需求,您可以使用jQuery修改DOM然后调用它上面的绑定...

答案 1 :(得分:2)

Knockout 3.0(现在即将发布候选版本)开启了lot more ways to interact with the binding process,例如预处理节点和动态生成绑定的能力。看看Knockout.Punches,看看有什么可能的例子。在它和已经提到过的事情之间,比如unobtrusiveclass绑定提供程序,你可以毫不费力地使用你所坚持的任何标记。

也许值得一提的是,knockout有一个applyBindingsToNode函数,如果你想要完全控制,它会接受绑定的JSON对象,尽管这不会对后代元素应用绑定。

答案 2 :(得分:-1)

查看“进一步技术”下的Knockout文档中的“不显眼的事件处理”部分。