是否可以仅从javascript创建挖空绑定,即无需编写自定义html属性?
我非常坚持我们现有的标记,无法添加 KNOCKOUT .js 依赖的data-bind
等(html 是以编程方式生成的,无法访问渲染管道,请假设我已经用尽了我的选择来尝试:)
我暂时追求的一个想法是在调用ko.applyBindings
之前在运行时添加data-bind
属性。有没有首选方法?我也会接受一个替代的、有充分文档记录的/流行的/稳定的框架,如果它也实现了类似于 knockout 的绑定.js if
/visible
.
Knockout 3.0(即将发布,现在处于候选版本中)开辟了更多与绑定过程交互的方式,例如预处理节点和动态生成绑定的能力。看看Knockout.Punches,看看一些可能的例子。在此和已经提到的内容(如不显眼的和类绑定提供程序)之间,使用您坚持使用的任何标记应该没有问题。
可能还值得指出的是,KNOCKOUT有一个applyBindingsToNode函数,如果你想要完全控制,它会接受绑定的JSON对象,尽管它不会将绑定应用于后代元素。
Knockout 允许我们创建自定义绑定提供程序,我发现有几个库可以帮助您做到这一点
你可以在这里找到它们:
一个根本不使用 DOM 的:
https://github.com/tobio/knockout.unobtrusivebindingprovider
一种使用另一种方法:
https://github.com/rniemeyer/knockout-classBindingProvider
最后,如果它们都不适合您的需求,您可以使用 jQuery 修改 DOM,然后对其调用绑定......
查看"进一步技术"下的淘汰文档中的"不显眼的事件处理"部分。