如果不为空,用knockout.js绑定连接两列



我在MVC剃刀项目中使用Knockout.js绑定FirstName和LastName表列

<td><label class='required' data-bind="text: FirstName + ' ' + LastName" /><td/>

它连接,但当一个字段为空时,它将在输出中显示null。

:

约翰史密斯零史密斯约恩零零空

如何删除这个null?

您可以使用计算属性:

viewmodel.FullName = ko.computed(function(){
     if (viewmodel.FirstName && viewmodel.LastName)
          return viewmodel.FirstName + ' ' + viewmodel.LastName
     else if(viewmodel.FirstName)
          return viewmodel.FirstName;
     else if (viewmodel.LastName)
          return viewmodel.LastName;  
     else
          return '';
});

然后像这样更新你的绑定:

<td><label class='required' data-bind="text: FullName" /><td/>

我会说检查字符串中是否有值:像这样if(FirstName)FirstName.length > 0如果是,可以设置FirstName = '';

计算的if else情况比Kenneths少,并且可以重用

function joinComputed() {
    var parts = arguments;
    return ko.computed(function() {        
        return ko.utils.arrayFilter(ko.utils.arrayMap(parts, function(part) {
            return ko.unwrap(part)
        }), function(part) {
            return part;
        }).join(" ");
    })
}
http://jsfiddle.net/6yLrjc5y/

相关内容

  • 没有找到相关文章

最新更新