VisitEntries 컬렉션을 보유하고있는 루트 녹아웃 모델을 가지고 있는데,이 각각의 항목에는 RoomProfile이라는 개체가 있습니다. 사용자가 방문 항목을 만들 때 (방문 목록에 회의실 추가) 회의실의 프로필 데이터가로드되어 해당 모임 내 사용자에게 표시되어야합니다. 하지만 관련 모델을 업데이트 할 수는 없습니다. 전에 다른 분야에서 아무런 문제가 없었습니다. 내 뿌리 mappedModel
에 VisitEntryToAdd
사본을 만들거나 컬렉션 안에 있기 때문에 문제가 있다고 생각합니다. 나는 잘 모르겠다. 그러나 나는이 일을했을 때 다른 시간과 유일한 차이점이있다.녹아웃 매핑 fromJS fromJSON이 컬렉션 내에서 작동하지 않습니까?
mappedModel.addVisitEntry = function() {
var visitEntryToAdd = ko.mapping.fromJS(ko.mapping.toJS(mappedModel.VisitEntryToAdd));
$.ajax({
url: '/GetRoomProfileForVisit',
type: 'POST',
data: ko.mapping.toJSON({ Id: visitEntryToAdd.SelectedRoom.Id() }),
dataType: "json",
contentType: 'application/json; charset=utf-8',
success: function (data) {
if (data !== null) {
console.log("Checking entry before assigning room profile data: \n" + ko.mapping.toJSON(visitEntryToAdd));
console.log("Room Profile Data Loaded:\n" + ko.mapping.toJSON(data));
ko.mapping.fromJS(data, {}, visitEntryToAdd.RoomProfile);
console.log("Checking entry after assigning room profile data: \n" + ko.mapping.toJSON(visitEntryToAdd));
}
mappedModel.VisitEntries.push(visitEntryToAdd);
}
});
}
상기 코드 거치지 :
우선 CONSOLE.LOG는 visitEntryToAdd
는 I 방 프로파일 데이터를 추가하기 전에 널 (null)로 설정 RoomProfile
포함한 모든 필드가 정확한 것을 나타낸다.
두 번째 console.log는 내 ajax 메소드가 데이터를 반환했음을 확인하고 적절하게 구성되었음을 확인합니다.
세 번째 console.log는 동일한 visitEntryToAdd
을 나타내며 여기에 RoomProfile
은 여전히 null입니다.
visitEntryToAdd.RoomProfile(ko.mapping.fromJS(data));
그러나 나는 그것이 사용의 것과 만 fromJS
명령을 사용하여 작동하지 않는 이유를 모르겠습니다. 누군가가 설명을 해줄 수 있다면 나는 대답으로 표시 할 것입니다.
실수입니까? 코드 샘플에 정의되지 않은 일부 labVisitEntryToAdd를 console.logging하고 있습니까? – DonSteep
복사시 추상화 실수. – SventoryMang
가능하다면 Ajax 코드를 스터 빙하여 [mcve]를 만들고 가능한 한 적은 수의 예제 데이터를 포함하고 컨텍스트의 모델 코드보기/실행 가능하게 만드십시오. – Jeroen