0
我有一些html输入元素绑定到具有C#类型“double”属性的对象。有没有一种方法可以将我的输入值绑定到这些属性,但如果实际属性为零而不是“0”,则不显示任何内容?敲除绑定到C#双初始值空白
我有一些html输入元素绑定到具有C#类型“double”属性的对象。有没有一种方法可以将我的输入值绑定到这些属性,但如果实际属性为零而不是“0”,则不显示任何内容?敲除绑定到C#双初始值空白
你可以在你的视图模型使用writeable computed,以确保您返回一个空字符串,而不是0
或者,您也可以使用自定义绑定,以避免与它的视图模型侧搞乱。样品可能看起来像:
ko.bindingHandlers.valueNoZero = {
init: function(element, valueAccessor, all, data, context) {
//create a writeable computed on-the-fly to handle not showing zero values
var formatter = ko.computed({
read: function() {
var value = ko.unwrap(valueAccessor());
//if value is zero return empty
return value || "";
},
write: function(newValue) {
var value = valueAccessor();
//write numeric value
value(!newValue || isNaN(newValue) ? 0 : parseInt(newValue, 10));
},
disposeWhenNodeIsRemoved: element
});
ko.applyBindingsToNode(element, { value: formatter }, context);
}
};
的想法是,它会在绑定计算在中间放置的实际价值和你输入一个可写的。