Когда я использую 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, поэтому мне неясно, как я могу использовать для него такое же переопределение. Нужно ли создавать совершенно новый объект, чтобы сделать это и в этом случае? Или их что-то более лаконичное?