如果我有一个自定义绑定来聚合其他类似如下:
ko.bindingHandlers.binding1 = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var ctx = ko.utils.unwrapObservable(valueAccessor());
ko.applyBindingsToNode(element, { 'binding2': ctx });
ko.applyBindingsToNode(element, { 'binding3': ctx });
}
};
“allBindingsAccessor”仅返回其 init 函数的当前绑定。
我期待它在 binding2“init”函数上返回 binding1 和 binding2,在 binding3“init”函数上返回 binding1、2 和 3。
以下小提琴显示了我提到的行为。 http://jsfiddle.net/J3sjq/5/
问题是我的 binding3 取决于其他绑定的存在,例如 binding2。
实现该行为的最佳方法是什么?我正在考虑修改上下文以告知其他绑定的存在,但这听起来有点像 hack。
提前致谢。
编辑:
我已经更新了我的小提琴以显示更多原始问题,我试图简化但我可能做得过火了。
在新的小提琴中, binding1 被一个 initFieldStatus 替换,它初始化 3 个其他复杂绑定,每个绑定计算一个输入字段状态, isInputAtWarning 绑定依赖于元素上声明的其他绑定。
希望这能澄清这个问题。
谢谢你。
编辑2:
我提供了一个更真实的例子来说明我正在尝试实现的内容。