我有一个布尔变量,它使用KnockoutJS中的这个元素进行绑定:
Run Code Online (Sandbox Code Playgroud)<span data-bind="text: myBooleanVar"></span>
我想在UI中显示yes或no,而不是true或false.我尝试了不同的函数将值转换为yes或no,但它们不起作用.我认为应该有一个简单的方法来做到这一点.有人可以帮忙吗?
您可以将逻辑放在视图中(@Ravi Dasari的答案)或将其放在视图模型中(@dperry的答案),但我认为自定义绑定也是一种适用的方法.
<span data-bind="boolean: myBooleanVar"></span> <!-- (Defaults to "Yes" or "No")-->
<span data-bind="boolean: myBooleanVar, trueText: 'Absolutely', falseText: 'Negative'"></span>
ko.bindingHandlers.boolean = {
update: function (element, valueAccessor, allBindings) {
var bool = ko.utils.unwrapObservable(valueAccessor()),
trueText = allBindings.get('trueText') || 'Yes',
falseText = allBindings.get('falseText') || 'No';
$(element).text(bool ? trueText : falseText);
},
};
Run Code Online (Sandbox Code Playgroud)