给定一个HTML元素,如何确定对其应用了哪些绑定?
我可以用bindingContext和viewModel来确定ko.dataFor(elem)和ko.contextFor(elem)。是否有类似的东西会给我附加在元素上的绑定列表?
目前,我不得不使用jQuery来找出与元素绑定的内容:
var bindings = $(element).data("bind");然后,我必须手动拆分,以获得用于评估的键/值对,这显然令人讨厌。
bindings= bindings.split(",");
$.each(bindings, function (index, value) {
var parts = value.split(":");
value = parts[1].trim().replace("()", "");
var observableToUpdate = koElement;
var propertyParts = value.split(".");
// The valueAccessor has dots in it?
// Let's find the end of this piece of string
$.each(propertyParts, function (ind, val) {
observableToUpdate = observableToUpdate[val];
});
}发布于 2014-01-17 15:13:39
如果有元素和绑定上下文的引用,那么可以使用ko.bindingProvider的getBindings方法来获得附加的绑定对象。
您可以通过bindingProvider属性访问当前的ko.bindingProvider.instance:
var context = ko.contextFor(element);
var bindings = ko.bindingProvider.instance.getBindings(element, context);演示JSFiddle。
您可以在这里阅读更多关于bindingProviders的信息:KO 1.3预览第2部分:自定义绑定提供程序
https://stackoverflow.com/questions/21188479
复制相似问题