我有自定义的敲除绑定,例如像这样:
ko.bindingHandlers.yourBindingName = {
init: function(element, valueAccessor, allBindingsAccessor,
viewModel, bindingContext)
{
// how to access the value-part of the data-bind="name:value" attribute?
},
};
和
<div data-bind="yourBindingName: someValue"> </div>
是否可以从init
- 函数访问data-bind属性的值部分(即上例中的“someValue”)?
更新:只是为了澄清我的意思:
div
的data-bind属性有一个名称和值部分,用冒号分隔,例如“yourBindingName:someValue”答案 0 :(得分:0)
如果我理解正确,那么发送到自定义绑定处理程序的数据是valueAccessor,作为observable。因此,如果您想要该值,请执行以下操作:
var value = valueAccessor();
答案 1 :(得分:0)
我不知道为什么你曾想要这样做,但是你走了:
ko.bindingHandlers.reflector = {
init: function(element, valueAccessor, allBindingsAccessor,
viewModel, bindingContext)
{
var reflected;
var binding = valueAccessor();
for (var prop in viewModel) {
if (viewModel[prop] == binding) {
reflected = prop;
break;
}
}
ko.bindingHandlers.text.update(element, function(){ return reflected});
},
};