'foreach 바인딩을 사용하여 배열을 가져올 때 왜 내 ko.mapping이 제대로 작동하는지 알 수 없지만 하나의 객체 일 때 ('with'바인딩 사용) 전혀 작동하지 않습니다. 나는 오류를 얻을하지 않습니다,하지만 나는 또한 어떤 결과를 얻을하지 않습니다 : 내가 배열로 getSingleEvent()의 결과를 밀어와 같이 다시 'foreach는'을 사용할 수 있습니다observable 대 observableArray 대 매핑 Knockout.JS
function EventViewModel() {
var self = this;
self.events = ko.observableArray([]);
self.singleEvent = ko.observable({});
self.getEvents = function() {
self.events.removeAll();
$.ajax("/api/Event/", {
contentType: "application/json",
success: function (allData) {
ko.mapping.fromJS(allData, null, self.events);
}
});
}
self.getSingleEvent = function() {
self.events.removeAll();
$.ajax("/api/Event/?guid=435a666b-7913-417f-a474-dfb33d74c2ec", {
contentType: "application/json",
success: function (allData) {
ko.mapping.fromJS(allData, null, self.singleEvent);
}
});
}
self.getEvents();
self.getSingleEvent();
};
window.vm = new EventViewModel();
ko.applyBindings(vm);
:
ko.mapping.fromJS([allData], null, self.singleEvent);
을
그리고 singleEvent를 작동시키는 observableArray로 만드십시오. 그러나 그것은 나에게 속임수처럼 보입니다.
[{"EventId":4,"Year":2013,"StartDate":"2013-08-28T00:00:00","EndDate":"2013-09-02T00:00:00","EventGuid":"435a666b-7913-417f-a474-dfb33d74c2ec"},{"EventId":5,"Year":2013,"StartDate":"2013-06-07T00:00:00","EndDate":"2013-06-09T00:00:00","EventGuid":"615014ba-15cd-4371-8d43-04d66eb558a2"}]
및 getSingleEvent()에서 JSON은 다음과 같습니다 :
는getEvents에서 JSON()는 다음과 같습니다
{"EventId":4,"Year":2013,"StartDate":"2013-08-28T00:00:00","EndDate":"2013-09-02T00:00:00","EventGuid":"435a666b-7913-417f-a474-dfb33d74c2ec"}
JSON 데이터가 API에서 돌아 오는 모습은 무엇입니까? 그러면 결과 자바 스크립트 객체 유형이 결정됩니다. –
그냥 JSON 샘플 –