gpt4 book ai didi

knockout.js - KnockoutJS - 使用 ko.mapping 插件为特定字段强制编号

转载 作者:行者123 更新时间:2023-12-01 11:04:19 26 4
gpt4 key购买 nike

当我使用 ko.mapping.toJSON 时,它会将我所做的任何更改转换为字符串,并且它们必须是数字。我试过像这样使用自定义映射:

    var mapping = {
'y': {
update: function(options) {
return parseFloat(options.data);
}
}
}

...但这只会将它们保留为页面内容中的数字。由于我使用它来更新 HighCharts.js 引入的外部 JSON,因此即使在 toJSON 之后,数字也需要保持数字不变。

从这里较早的回答我可以使用:

//override toJSON to turn it back into a single val
mappedData.prototype.toJSON = function() {
return parseInt(ko.utils.unwrapObservable(this.val), 10); //parseInt if you want or not
};

... 运行顺畅。但是,这只是 JSON 中的单个值类型,因此我不清楚如何对其使用相同的覆盖。在这种情况下,我是否也需要创建一个全新的对象来执行此操作。或者他们的东西更简洁?

最佳答案

每当您在输入中编辑一个值时,该值最终将成为一个字符串。 Knockout 从元素中读取新值,它始终是一个字符串。

如果您想将其保留为数字,请查看此问题的答案:Knockout.js: time input format and value restriction有几种方法可以做到这一点。如果您在答案中使用自定义绑定(bind) (numericValue),则无需对映射选项执行任何其他操作。如果您使用 numericObservable 想法,那么您将需要使用映射选项来确保它正在创建这些特殊的可观察对象,而不仅仅是一个普通的可观察对象。

否则,您也可以继续使用 toJSON 覆盖。

关于knockout.js - KnockoutJS - 使用 ko.mapping 插件为特定字段强制编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7616736/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com