Knockout.js 敲除绑定到C#双初始值空白
我将一些html输入元素绑定到一个具有C#type“double”属性的对象。是否有一种方法可以将输入值绑定到这些属性,但如果实际属性为零而不是“0”,则不显示任何内容?您可以在视图模型中使用,以确保返回空字符串而不是0 或者,您可以使用自定义绑定,以避免在视图模型方面与之混淆。示例可能如下所示:Knockout.js 敲除绑定到C#双初始值空白,knockout.js,bind,Knockout.js,Bind,我将一些html输入元素绑定到一个具有C#type“double”属性的对象。是否有一种方法可以将输入值绑定到这些属性,但如果实际属性为零而不是“0”,则不显示任何内容?您可以在视图模型中使用,以确保返回空字符串而不是0 或者,您可以使用自定义绑定,以避免在视图模型方面与之混淆。示例可能如下所示: ko.bindingHandlers.valueNoZero = { init: function(element, valueAccessor, all, data, context) {
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);
}
};
其思想是,它在绑定中创建一个可写的计算程序,将其放置在实际值和输入之间
此处示例: