Javascript 如何在运行时创建不带数据属性的淘汰数据绑定
是否可以仅从javascript创建敲除绑定,即不编写自定义html属性 我非常坚持使用现有的标记,无法添加knockout.js所依赖的Javascript 如何在运行时创建不带数据属性的淘汰数据绑定,javascript,jquery,data-binding,knockout.js,javascript-framework,Javascript,Jquery,Data Binding,Knockout.js,Javascript Framework,是否可以仅从javascript创建敲除绑定,即不编写自定义html属性 我非常坚持使用现有的标记,无法添加knockout.js所依赖的数据绑定等(html是以编程方式生成的,无法访问渲染管道,请假设我在尝试时已用尽了所有选项:) 我正在尝试的一个想法是在调用ko.applyBindings之前,在运行时添加数据绑定属性。有没有更好的方法?如果它也实现了类似于knockout.js的绑定,那么我也会接受一个替代的、有充分文档记录的/流行的/稳定的框架。如果knockout允许我们创建自定义绑定
数据绑定
等(html是以编程方式生成的,无法访问渲染管道,请假设我在尝试时已用尽了所有选项:)
我正在尝试的一个想法是在调用
ko.applyBindings
之前,在运行时添加数据绑定
属性。有没有更好的方法?如果它也实现了类似于knockout.js的绑定,那么我也会接受一个替代的、有充分文档记录的/流行的/稳定的框架。如果knockout允许我们创建自定义绑定提供程序,我发现有几个lib可以帮到您
你可以在这里找到它们:
一个完全不使用DOM的:
使用另一种方法的人:
最后,如果它们都不适合您的需要,您可以使用jQuery修改DOM,然后调用其上的绑定…查看淘汰文档中“进一步技术”下的“不引人注目的事件处理”部分。淘汰3.0(即将发布,现在正在候选版本中)打开,例如预处理节点和动态生成绑定的能力。看一看,看看一些可能的例子。在这和前面提到的和绑定提供程序之间,使用任何标记都不会有问题
还值得一提的是,knockout有一个applyBindingsToNode函数,如果您想要完全控制的话,它会接收绑定的JSON对象,尽管它不会将绑定应用于后代元素。我不知道该如何使用它-它似乎提供了一种只委托交互处理程序的不显眼的方式(
单击
等)与全套knockout.js绑定相反,包括data bind=“value:where”
和条件。我遗漏了什么吗?这不是答案。这是一个答案的方向,只要Knockout不改变页面的内容。unobtrusivebindingprovider看起来很有用,尽管活动非常有限(FTFY:它确实使用DOM,但它不使用标记进行数据绑定,这正是我想要的)Punchs看起来很有用。尽管如此,我还是开始相信我所追求的是一个真正的击倒型反模式——这意味着我实际上无法控制MVVM模式的“VM”部分:(更具体地说,您无法控制视图,视图是MVVM的V部分。我认为这种方法肯定是一种不太理想的方法——我认为您也意识到了这一点。但是如果您真的无法修改HTML,那么您别无选择,只能做一些不寻常的事情。