我在MVC razor项目中使用Knockout.js将表列与FirstName和LastName绑定
<td><label class='required' data-bind="text: FirstName + ' ' + LastName" /><td/>
它连接但当一个字段为空时,它将在输出中显示null。
像:
乔·史密斯 Null Smith Jone Null Null Null如何删除此null?
答案 0 :(得分:0)
您可以使用计算属性:
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/>
答案 1 :(得分:0)
我要说检查字符串中是否有值:就像这样
if(FirstName)
或FirstName.length > 0
如果是这样,你可以设置FirstName = '';
答案 2 :(得分:0)
使用比Kenneths更少的if else案例进行计算,并且可以重复使用
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(" ");
})
}