2013-08-04 4 views
0

У меня есть проект SPA с использованием HotTowel от John Papa.Не удается загрузить модуль на HotTowel SPA

У меня есть listservice модуль в папке services и функции, как:

define(['services/logger', 'models/businessobject', 'config'], 
    function (logger, businessobject, config) { 
     ... 
    } 

Также у меня есть businessobject модуль в папке models. Но когда я запускаю приложение в модуле listservice, значение параметра businessobject равно null.

Есть ли что-нибудь, что я пропустил, чтобы сообщить RequireJS или Durandal/Amd, что модуль businessobject есть?

Содержание 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; 
} 

Кроме того, с помощью Firebug, я проверил, что businessobject модуль загружается клиенту.

ответ

0

Ваш BusinessObject не создается каким-либо образом. Если вы пытаетесь использовать его, чтобы выставить различные модели, чем вы можете сделать так, как это -

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; 
    } 

, а затем из вашего listservice

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

Или если вы просто хотите иметь один модуль для каждого модель, которая кажется немного громоздкой, но, безусловно, может быть выполнена, вы можете оставить свой код как есть и создать его в обычном режиме -

var myObj = new BusinessObject(); 
Смежные вопросы