我面临使用knockout js将数据绑定到多个字段的问题。 我发现这个代码要对它负责。这段代码不是我写的,所以无法理解背后的原因。 谁能解释一下呢?
=INDEX(Sheet2!$D$2:$D$10,SUMPRODUCT((A2=Sheet2!$A$2:$A$10)*(B2=Sheet2!$B$2:$B$10)*(C2=Sheet2!$C$2:$C$10)*(ROW(Sheet2!$A$2:$A$10)-1)))
这就是它的用法:
ko.bindingHandlers.isolatedOptions = {
//element, valueAccessor, allBindings, viewModel, bindingContext
init: function (element, valueAccessor) {
var args = arguments;
ko.computed({
read: function () {
ko.utils.unwrapObservable(valueAccessor());
ko.bindingHandlers.options.update.apply(this, args);
},
owner: this,
disposeWhenNodeIsRemoved: element
});
},
update: function (element, valueAccessor)
{
var args = arguments;
ko.computed({
read: function ()
{
ko.utils.unwrapObservable(valueAccessor());
ko.bindingHandlers.options.update.apply(this, args);
},
owner: this,
disposeWhenNodeIsRemoved: element
});
}};
答案 0 :(得分:1)
此代码为您的html代码创建自定义绑定,名为isolatedOptions,用于点击,更改,默认内置绑定值。必须使用某些HTML元素的data-bind属性在代码中使用它。
点击此处查看
http://knockoutjs.com/documentation/custom-bindings.html
您的元素是select,您的valueAccessor是$ root.procurementTypes。在设置元素选择的初始状态时调用init。它接受参数并运行init函数。如果你正在使用observables或计算的东西并且有变化,则可以通过knockout js多次调用update。最初在应用绑定时也会调用它。