우리는 knockout.js를 많이 사용하지만 새로운 시나리오를 실행했습니다. 그것은 ko.toJSON
을 중심으로 돌아가지만, 문제를 일으키는 원인이되는 내용은 ko.toJS
입니다.ko.toJS에서 개체로 변환
우리는 하나의 속성이 다른 개체의 배열 인 많은 속성을 가진 개체를 가지고 있습니다. ko.toJS
을 실행 한 후에는 원래 색인의 이름이 지정된 각 속성이있는 객체가됩니다. 나는이 코드를 테스트 코드에서 복제 할 수 없었습니다. 실제로 ko.toJS
은 배열을 다른 테스트에서 배열로 유지합니다.
ko.toJS
예 잘못 얻고 객체로 변환 :
ko.toJS
예 권리를 얻고, 및 배열로 남겨 :
임의 왜 ko.toJS
에 대한 생각이 다음에 무엇을보아야하는지 알 수 있습니다 ...!
업데이트
녹아웃의 디버거 버전을 사용하여,이 mapJsObjectGraph에 전달되고 어떻게 배열을보고하는 것입니다 :
녹아웃 디버그 빌드를 다운로드하고 mapJsObjectGraph 함수 (내 녹아웃 -3.0.0 디버그의 1619 행)를 찾을 수 있습니다. 그런 다음 console.log (outputProperties)를 줄 위에 추가하십시오 (1650). return outputProperties; 그리고 KO가 발전하면서 무엇을 만들어 내는지 볼 수 있습니다. – sifriday
Thanks @sifriday - 업데이트 된 정보가 추가되었습니다. 우리는 방금 무언가를 발견했습니다. 객체가 iframe 외부에서 비롯되었으므로 instanceof가 프레임 경계에서 작동하지 않는 것 같습니다. 이 경우 답변을 게시합니다. –
@JamesThorpe 확실히 문제입니다. 'instanceof'는 프로토 타입의 참조를 비교하고 (다른 모든 객체와 마찬가지로)'Array' 프로토 타입은 각 호스트 환경에 대해 고유합니다. – Vache