Когда я использую ko.mapping.toJSON
, он преобразует любые сделанные мной изменения в строки, и они должны быть числами. Я попытался использовать пользовательское сопоставление следующим образом:
var mapping = {
'y': {
update: function(options) {
return parseFloat(options.data);
}
}
}
... но это только сохраняет их как числа внутри страницы. Поскольку я использую это для обновления и внешнего JSON, который загружается HighCharts.js, числа должны оставаться числами даже после 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, поэтому я не понимаю, как я могу использовать для него одно и то же переопределение. Нужно ли мне создавать совершенно новый объект, чтобы сделать это и в этом случае. Или их что-то более лаконичное?