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