0

我有一个使用 John Papa 很棒的 HotTowel 的 SPA 项目。

listservice在文件夹中有一个模块,services功能如下:

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

另外我在文件夹中有一个businessobject模块。models但是当我在listservice模块中运行应用程序时,参数businessobject的值为空。

有什么我想告诉的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;
}

此外,使用 Firebug,我检查了businessobject模块是否已加载到客户端。

4

1 回答 1

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

然后从您的列表服务

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

或者,如果您只想为每个模型使用一个模块,这看起来有点笨重但肯定可以完成,您可以将代码保持原样并正常实例化它 -

var myObj = new BusinessObject();
于 2013-08-04T16:14:41.570 回答