knockout data-bind表达式,如果未定义值,则显示字符串

时间:2013-07-25 17:02:21

标签: knockout.js

目前,如果值为零,则使用以下代码放置' - ':

<span data-bind="text: setup==0 ? '-' : setup"></span>

不是在我的视图模型数据的部分中放置值:0,而是尝试绑定到某些实例中可能不存在的值,并且在该实例中显示字符串(我的示例是下面的' - ' ),我的绑定代码如下:

<span data-bind="text: (typeof setup !="undefined") ? setup : '-'"></span>

但是,每次设置时都会触发绑定,在下面的json数据中注意中间设置未定义我也想处理这种情况。

var serverOptions = [
    {
        name: "DELL R210",
        setup: 1000
    },
    {
        name: "DELL R710",
    },
    {
        name: "DELL R720 Dual CPU",
        setup: 1000
    }
];

用上面的方式抓我的头,会很感激指点。

1 个答案:

答案 0 :(得分:2)

如其他SO帖子所述,您可以使用$ data来检查数据是否存在

<span data-bind="text: !$data.setup ? '-' : $data.setup"></span>

如果没有文本,那么这将评估为false,并显示 - else show setup。

需要注意的是,如果您只是执行了$ data.setup,那么这不是一个逻辑测试,而是添加!从一开始就把它变成一个用于评估的目的。

http://jsfiddle.net/NGNhD/1/