另一个想法是创建一个绑定处理程序,因为它可以让您更好地控制行为。
http://jsfiddle.net/DRP3d/
它需要编写的 jQuery(但只是为了使代码更简洁)。
本质上,它只是查看绑定值,查看您在 html 中使用的属性(数据配置),然后根据值与配置的比较隐藏或显示给定元素。
ko.bindingHandlers.showtype = {
update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
var $element = $(element);
var config = $(element).attr('data-configuration');
var value = ko.utils.unwrapObservable(valueAccessor());
config = config.split(',');
var found = false;
for(var i=0, len=config.length; i < len; i++) {
if (value == config[i]) {
found = true;
break;
}
}
if (found) { $element.show(); } else { $element.hide(); }
}
};