我想在淘汰赛中使用带有自定义bindingHandler的命名模板,但似乎传递给自定义绑定的viewModel被剥夺了$ root,$ parent,$ component等的上下文属性。我的情况我需要这个背景。
当我在引用$ parent的模板上执行ko.renderTemplate时出现错误 - " ReferenceError:$ parent未定义"
注意:绑定到对象" bob"只是说明我需要" bob"" $父。看来我可以通过执行ko.contextFor(element)来获取父viewModel的上下文,但我需要" bob"对象的背景......
JAVASCRIPT:
<div>You've clicked <span data-bind='text: numberOfClicks'> </span> times</div>
<div data-bind="with:bob">
<span data-bind="test:'testTemplate'"></span>
</div>
<script id="testTemplate" type="text/html">
<span data-bind="text:name" />
<button data-bind="click:$parent.registerClick">CLICK</button>
</script>
HTML
$(document).ready(function() {
$('.row-horizon').mousewheel(function(e, delta) {
this.scrollLeft -= (delta * 40);
e.preventDefault();
});
});
答案 0 :(得分:2)
绑定上下文对象是$parent
等所在的位置。您应该将bindingContext
传递给ko.renderTemplate
而不是viewModel
:
ko.renderTemplate(templateId, bindingContext, {}, element, "replaceChildren");
我已经使用此更改更新了您的jsfiddle示例,并结合其他人使其正常工作:https://jsfiddle.net/g462td77/2/