1

VisualStudio에 ko.mapping을 설치할 수 있었지만 일부 Json Data를 내보기에 매핑하려고하면 작동하지 않습니다. 아무도 내가 뭘 잘못하고 있다고 말할 수 있습니까?Hottowel에서 Knockout Mapping 플러그인을 사용하는 방법

여기 내 뷰 모델

define(['plugins/router', 'knockout', 'services/logger', 'durandal/app', 'mapping'], function (router, ko, logger, app, mapping) { 

    //#region Internal Methods 
    function activate() { 
     logger.log('Google Books View Activated', null, 'books', true); 
     return true; 
    } 
    //#endregion 
    //==jquery================================================= 
    function attached() { 


    }//-->end of viewAttached() 

    //========VIEWMODEL======================================== 
    var ViewModel = function (data) { 
     activate = activate; 
     attached = attached; 
     title = 'google Books'; 

    }; 

    return new ViewModel(); 

}); 

이며, 여기 당신이 새로운보기 모델을 반환 할 필요가 없다고 생각하지 않는다 Jsfiddle

답변

2

의 작업 예제를 인도 표준시. 뷰 모델을 반환하면됩니다.

define(['plugins/router', 'knockout', 'services/logger', 'durandal/app', 'mapping'], 
    function (router, ko, logger, app, mapping) { 
    var books = ko.observableArray(); 
    function activate() { 
     getBooks().then(function(){ 
     logger.log('Google Books View Activated', null, 'books', true); 
     return true; 
     }); 
    } 
    function attached() { 
    } 
    function getBooks(){ 
     $.getJSON(url, function (data) { 
     vm.books(ko.mapping.fromJS(data)); 
     return true; 
     }); 
    } 

    var vm = { 
     activate : activate, 
     attached : attached, 
     title : 'google Books', 
     books: books 
    }; 

    return vm; 
}); 

편집
는 requirejs 오류가 main.js 파일에 추가 찾을 수 있습니다. requirejs 모듈 로딩 오류를 추적하는 데 도움이됩니다.

requirejs.onError = function (err) { 
    console.log(err.requireType); 
    if (err.requireType === 'timeout') { 
     console.log('modules: ' + err.requireModules); 
    } 

    throw err; 
}; 
+0

이 경우 뷰 모델에 서적 컬렉션을 노출해야하므로 질문에 더 잘 답변 할 수 있도록 답변을 편집했습니다. 또한 데이터 검색을 자체 JavaScript 파일로 제거하는 방법을 살펴볼 것입니다. –

+0

저자 : HotTowel의 샘플 앱인 [https://github.com/johnpapa/PluralsightSpaJumpStartFinal]을 확인하십시오. –

+0

http://chat.stackoverflow.com/rooms/42761/questions-20460129 –