2013-08-04 3 views
0

John Papa의 멋진 HotTowel을 사용하는 SPA 프로젝트가 있습니다. HotTowel SPA에서 모듈을로드 할 수 없습니다

는 I는 services 폴더에 listservice 모듈을 가지고 기능 등이다
define(['services/logger', 'models/businessobject', 'config'], 
    function (logger, businessobject, config) { 
     ... 
    } 

는 또한 I는 models 폴더에 businessobject 모듈을 갖는다. 그러나 listservice 모듈에서 앱을 실행할 때 매개 변수 businessobject의 값은 null입니다.

RequireJS 또는 Durandal/Amdbusinessobject 모듈이 있다는 것을 놓치지 않는 것이 있습니까?

businessobject.js의 내용과 같다 : 방화범을 사용하여 또한

define(['services/logger'], 
function(logger) { 
    var BusinessObject = function() { 
     var self = this; 
     self.id = ko.observable(); 
     self.typeId = ko.observable(); 
     self.descriptor = ko.observable(); 
     self.isNullo = false; 
     return self; 
    }; 

    return BusinessObject; 
} 

, 나는 businessobject 모듈은 클라이언트에로드되는 것을 확인했습니다.

답변

0

귀하의 BusinessObject가 어떤 식 으로든 인스턴스화되지 않습니다. 당신은 당신이 이런 식으로 그렇게 할 수있는 것보다 다양한 모델을 노출하는 데 사용하려는 경우 - 당신의 listservice에서 다음

define([], function() { 

    var businessModels = { 
     businessObject: businessObject 
    }; 
    return businessModels; 

    function businessObject(id, typeid, descriptor, isNullo) {  
     var self = this; 
     self.id = ko.observable(id); 
     self.typeId = ko.observable(typeid); 
     self.descriptor = ko.observable(descriptor); 
     self.isNullo = isnullo; 
    } 

var myObj = new BusinessObject.businessObject(1, 2, 'my obj', false); 

또는 당신은 각각 하나의 모듈을 갖고 싶어 약간 부피가 크지 만 확실히 할 수있는 모델은 코드를있는 그대로 그대로두고 인스턴스를 정상적으로 인스턴스화 할 수 있습니다. -

var myObj = new BusinessObject();