在Knockout中,有一种干净的方式可以从我的视图模型中显示一个布尔属性来显示'是'或者'否'而不是真/假。有时属性是未定义的,所以这也应该显示No。
目前正在使用:
<td data-bind="text: isAvailable ? 'Yes' : 'No'"></td>
一定是更好的方式。
答案 0 :(得分:8)
您可以使用此自定义bindingHandler,
ko.bindingHandlers.YesNo = {
update: function (element, valueAccessor) {
// defaults to false
var val = ko.utils.unwrapObservable(valueAccessor()) || false;
if (val)
$(element).text("Yes");
else
$(element).text("No");
}
}
像这样使用,
<td data-bind="YesNo: isAvailable"></td>
由于
答案 1 :(得分:2)
如果您将isTomorrow(this.triggeringElement)
定义为observable,则可以通过以下方式轻松实现:
<强>视图模型强>
isAvailable
查看强>
var viewModel = function()
{
var self = this;
self.isAvailable = ko.observable(false);
};
p / s:在处理可观察值时不要忘记<td data-bind="text: $root.isAvailable() ? 'Yes' : 'No'"></td>