Intenté ejecutar JSON.parse($("input").attr("data-bind")) pero arroja un error.
¿Hay algo similar en la biblioteca Knockout que pueda usar de alguna manera?
Me gustaría construir un objeto de todos los enlaces relevantes para un elemento y combinarlo con enlaces relevantes para los elementos principales.
¿Alguien sabe qué puedo hacer para lograr esto?
Tu ayuda es muy apreciada.
Las cadenas de enlace de Knockout no son JSON válidas, por eso no puede analizarlas como tales.
Sin embargo, la lógica de análisis predeterminada está expuesta. Puede acceder a él a través de una instancia de bindingProvider (eche un vistazo a la fuente para ver todos los métodos disponibles).
Aquí hay una prueba de concepto simple con la que puede comenzar:
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>