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



我试图运行JSON.parse($("input").attr("data-bind")),但它抛出了一个错误。

Knockout图书馆里有类似的东西我可以用吗?

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

有人知道我能做些什么来实现这一目标吗?

非常感谢你的帮助。

Knockout的绑定字符串不是有效的JSON,所以这就是为什么不能这样解析它的原因。

不过,默认的解析逻辑是公开的。您可以通过bindingProvider实例访问它(查看源代码以查看所有可用的方法(。

这里有一个简单的概念证明,你可以从开始

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>

最新更新