使用knockout.js在自定义绑定处理程序内显式设置值绑定处理程序



我正在尝试使可观察的FirstName与元素上的默认value绑定类似。由于某些原因,下面的ko.bindingHandlers.value.init不起作用。当我更新文本框时,它不会在属性中重新选择,但是,如果我在元素上手动设置value绑定,它可以正常工作。

HTML

<td class="text-center text-nowrap">
@Html.TextBoxFor(q => q.Number, new { data_bind = "dynamicFormList: { observable: true, value: FirstName }" })
</td>

处理器

ko.bindingHandlers.dynamicFormList = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
var values = ko.utils.unwrapObservable(valueAccessor());
if (values.observable && values.value) {
ko.bindingHandlers.value.init(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext);
}
}
}

您不能像那样调用绑定处理程序,但有一种称为applyBindingsToNode的方法(由于某些原因未记录(可以使用:

ko.bindingHandlers.dynamicFormList = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
var values = ko.utils.unwrapObservable(valueAccessor());
if (values.observable && values.value) {
ko.applyBindingsToNode(
element,
{ value: values.value }
);
}
}
}

Fiddle:https://jsfiddle.net/thebluenile/12agb3x9/

相关内容

  • 没有找到相关文章