Knockout.js 中是否有从数据绑定属性字符串构建对象的函数?

Is there a function in Knockout.js to build an object from a data-bind attribute string?

我尝试 运行 JSON.parse($("input").attr("data-bind")) 但它抛出错误。

Knockout 库中是否有我可以以某种方式使用的类似内容?

我想构造一个包含与元素相关的所有绑定的对象,并将其与与父元素相关的绑定组合起来。

有谁知道我可以做些什么来实现这个目标吗?

非常感谢您的帮助。

Knockout 的绑定字符串无效 JSON,因此您不能这样解析它。

尽管如此,默认解析逻辑已公开。您可以通过 bindingProvider 实例访问它(查看 the source 以查看所有可用方法)。

您可以从以下简单的概念证明开始:

ko.applyBindings({});

const myDiv = document.querySelector("div")
console.log(
  ko.bindingProvider.instance.getBindings(myDiv, ko.contextFor(myDiv))
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<div data-bind="text: 'Hello', attr: { title: 'World' }"></div>