是或否而不是淘汰赛中的真或假

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 定义为可观察的,您可以通过以下方式轻松实现它:

JSFIDDLE

ViewModel

var viewModel = function()
{
   var self = this;

   self.isAvailable = ko.observable(false);
};

查看

<td data-bind="text: $root.isAvailable() ? 'Yes' : 'No'"></td>

p/s:在处理可观察值

时不要忘记使用()