2012-06-05 3 views
0

IE9에서 녹아웃 (2.1.0) 및 녹아웃 매핑 (2.1.2)을 사용하여 약간의 수수께끼가 생겼습니다. 어떤 이유로 객체의 배열 인덱스는 부모 객체로 변환됩니다. 예를 들어 :knockout.mapping, IE9 및 serialization

ko.mapping.toJSON(attachments); 

은 크롬에서 다음과 같습니다 뭔가 생산 :

{ 
    "UserID": 432, 
    "Attachments": [{ 
     "AttachmentID": 2, 
     "OwnerID": 321, 
     "DisplayName": "sample.pdf", 
     "Description": "desc", 
     "PostDate": "2012-06-01T09:24:43.817" 
     }, { 
     "AttachmentID": 3, 
     "OwnerID": 432, 
     "DisplayName": "sample3.pdf", 
     "Description": "desc", 
     "PostDate": "2012-06-05T14:01:00.693" 
     }, { 
     "AttachmentID": 4, 
     "OwnerID": 543, 
     "DisplayName": "sample2.pdf", 
     "Description": "desc", 
     "PostDate": "2012-06-05T14:01:49.18" 
     }] 
} 

을 ...하지만 IE9,이 같은 생산 : 이것은 내 녹아웃 바인딩을 나누기

{ 
    "UserID": 432, 
    "Attachments": { 
    "0": { 
     "AttachmentID": 2, 
     "OwnerID": 321, 
     "DisplayName": "sample.pdf", 
     "Description": "desc", 
     "PostDate": "2012-06-01T09:24:43.817" 
    }, 
    "1": { 
     "AttachmentID": 3, 
     "OwnerID": 432, 
     "DisplayName": "sample3.pdf", 
     "Description": "desc", 
     "PostDate": "2012-06-05T14:01:00.693" 
    }, 
    "2": { 
     "AttachmentID": 4, 
     "OwnerID": 543, 
     "DisplayName": "sample2.pdf", 
     "Description": "desc", 
     "PostDate": "2012-06-05T14:01:49.18" 
    } 
    } 
} 

을 왜냐하면 템플릿은 첨부 파일이 1 차 배열이 될 것으로 기대하기 때문입니다.

흥미롭게도, json2의 stringify는 내가 시도한 모든 브라우저에서 첫 번째 결과물 (내가 기대했던 것)을 반환합니다.

누구든지 이전에이 동작을 보았습니까? 그것을 고칠 수있는 방법에 대한 아이디어?

+0

는 버그처럼 들립니다 .... 여기에 신고 해주세요 : - https://github.com/SteveSanderson/knockout.mapping/issues –

+0

[신고] (https://github.com/SteveSanderson/knockout.mapping)/issues/81). – Ross

답변

0

짧은 버전은이 문제에 대한 답을 찾지 못했지만 해결 방법을 찾았습니다. 꽤 아니야. 여분을 ...

var jsonString = JSON.stringify(objToBind); 
var reconstitutedObject = ko.utils.parseJson(jsonString); 

재구성 된 개체에서 매핑을 생성하고 재구성 된 개체에 바인딩 : 내가 JSON 객체를 무시하고 delete window.JSON;를 사용하여 JSON3를 사용하도록 강제하는 경우,이 같은 일부 캐릭터 라인 화 요술을 부리다을 컨테이너가 사라진 것 같습니다. 이것은 배열 정의에 컨테이너로 해석되는 무언가가 있음을 나에게 시사하지만, 메인 프로젝트의 내장에서 파고 들며 네트워크 트래픽을 감지하고 서버가 응답하는 방법을 상세히 분석하려고 할 때, 내가 곧 올거야.