我有一个场景,我想成为 abel 具有可见性绑定。我希望它是虚拟的。
这个小提琴解决了我的问题,但我想要一个 bindgHandler 。我要解决的问题是,如果块属性为 true,则元素应该占用 HTML 中的空间,并且我不想渲染不必要的东西。
我想成为 abel 来做这件事,或者更好当然。
<!-- ko foreach: allRows -->
<!-- ko visibility: $data-->
<div>
<span data-bind="text:text"></span>
</div>
<!-- /ko -->
<!-- /ko -->
在 bindingHander 中,我所做的就是
if(block)
$element.css("visibility","hidden");
else
$element.css("visibility","visible");
我无法正确...有人可以帮助我朝正确的方向前进。
ko.bindingHandlers.visibility = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
},
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var child = ko.virtualElements.firstChild(element),
var visible = valueAccessor().visible();
var block= valueAccessor().block();
if (!block||!visible) {
//call the general if binding ?
} else {
//Add visibility:hidden class
}
}
};
ko.virtualElements.allowedBindings.visibility = true;