我在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/