녹아웃 매핑 플러그인을 사용하여 Ajax 호출에서 반환 된 데이터를 Durandal 프레임 워크의 viewmodel에 매핑 할 계획입니다. 그러나 뷰에서 사용할 수 있도록 매핑 된 객체를 반환하는 방법을 알지 못했습니다. 여기 내 코드는 뷰 모델의 login.js을 위해 : 당신이 볼 수 있듯이 ko.mapping가 나는보기로 돌아가 loginInterfaceData에 할당에서, 객체가 반환Durandal Viewmodel에서 녹아웃 매핑 객체가 반환되지 않음
define(function (require) {
var system = require('durandal/system'),
app = require('durandal/app'),
ko = require('knockout'),
komapping = require('komapping'),
deferred = $.Deferred(),
loginOptionsUrl = '/json/loginOptions.json',
loginInterfaceData = {};
ko.mapping = komapping;
return {
activate: function(){
var request = $.getJSON(loginOptionsUrl)
.done(function(data){
loginInterfaceData = ko.mapping.fromJS(data);
system.log(loginInterfaceData); //Do a check here; loginInterfaceData contains all the right data
deferred.resolve();
});
return deferred.promise();
},
loginInterfaceData: loginInterfaceData; //However, the view gets an empty object
. 그러나 Web Inspector에서 'viewmodels/login'에 의해 반환 된 loginInterfaceData 객체를 검사하면 빈 객체입니다. 내가 추측 할 수있는 유일한 이유는 viewmodel이 매핑이 완료되기 전에 loginInterfaceData를 반환한다는 것입니다. 그러나, 나는 그런 일이 일어나지 않도록 어떻게해야할지 모르겠습니다.
어떤 아이디어/조언이 가장 감사하겠습니다. 미리 감사드립니다!