是或否而不是淘汰赛中的真或假
Yes or No instead of True or False in Knockout
在 Knockout 中,有一种简洁的方法可以从我的视图模型中显示布尔值 属性 以显示 'Yes' 或 'No' 而不是 True / False。有时 属性 是未定义的,所以这也应该显示 No.
目前正在使用:
<td data-bind="text: isAvailable ? 'Yes' : 'No'"></td>
一定是更好的方法。
您可以使用这个自定义绑定处理程序,
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>
谢谢
如果您将 isAvailable
定义为可观察的,您可以通过以下方式轻松实现它:
ViewModel
var viewModel = function()
{
var self = this;
self.isAvailable = ko.observable(false);
};
查看
<td data-bind="text: $root.isAvailable() ? 'Yes' : 'No'"></td>
p/s:在处理可观察值
时不要忘记使用()
在 Knockout 中,有一种简洁的方法可以从我的视图模型中显示布尔值 属性 以显示 'Yes' 或 'No' 而不是 True / False。有时 属性 是未定义的,所以这也应该显示 No.
目前正在使用:
<td data-bind="text: isAvailable ? 'Yes' : 'No'"></td>
一定是更好的方法。
您可以使用这个自定义绑定处理程序,
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>
谢谢
如果您将 isAvailable
定义为可观察的,您可以通过以下方式轻松实现它:
ViewModel
var viewModel = function()
{
var self = this;
self.isAvailable = ko.observable(false);
};
查看
<td data-bind="text: $root.isAvailable() ? 'Yes' : 'No'"></td>
p/s:在处理可观察值
时不要忘记使用()