给定HTML元素,如何确定应用了哪些绑定?
我可以使用ko.dataFor(elem)
和ko.contextFor(elem)
确定bindingContext和viewModel。是否有类似的东西会给我一个附加到元素的绑定列表?
目前我不得不使用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];
});
}
答案 0 :(得分:2)
如果您有元素和对绑定上下文的引用,那么您可以使用getBindings
的{{1}}方法来获取附加的绑定对象。
您可以通过ko.bindingProvider
媒体资源访问当前bindingProvider
:
ko.bindingProvider.instance
演示JSFiddle。
您可以在此处详细了解bindingProviders:KO 1.3 Preview Part 2: Custom Binding Providers