访问自定义挖空绑定的值

时间:2013-03-27 10:25:53

标签: knockout.js

我有自定义的敲除绑定,例如像这样:

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”
  • name-part指定要调用的绑定
  • 我想访问我的绑定中的值部分,并像参数
  • 一样使用它

2 个答案:

答案 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});
    },
};

a fiddle