在Knockout中是或否而不是真或假

Ala*_*ock 3 javascript binding boolean knockout.js

在Knockout中有一种干净的方式来显示我的视图模型中的布尔属性,以显示"是"或"否"而不是真/假.有时属性是未定义的,所以这也应该显示否.

目前使用:

<td data-bind="text: isAvailable ? 'Yes' : 'No'"></td>
Run Code Online (Sandbox Code Playgroud)

一定是更好的方式.

sha*_*urg 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");
    }
}
Run Code Online (Sandbox Code Playgroud)

像这样使用它,

<td data-bind="YesNo: isAvailable"></td>
Run Code Online (Sandbox Code Playgroud)

谢谢