我试图运行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>