ko.mapping.toJSON
을 사용하면 문자열로 변경 한 내용이 숫자로 변환됩니다. 다음과 같이 사용자 지정 매핑을 사용해 보았습니다.KnockoutJS - ko.mapping 플러그인을 사용하여 특정 필드의 힘 번호
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에서 하나의 값 유형일 뿐이므로 어떻게 동일한 재정의를 사용할 수 있는지 명확하지 않습니다. 이 인스턴스에서이 작업을 수행하기 위해 완전히 새로운 개체를 만들어야합니까? 아니면 그들의 무언가가 더 간결한가요?
음. 방금이 게시물과 동일한 기능을 사용했습니다. http://stackoverflow.com/questions/7612046/template-for-a-single-dimension-array-with-knockout-js-and-ko-mapping 비슷하지만 여전히 관심이 있는지 알아 보겠습니다. 이것에 대해 "가장 좋은"방법. –