我有一个使用John Papa伟大的HotTowel的SPA项目。
我在listservice
文件夹中有一个services
模块,功能如下:
define(['services/logger', 'models/businessobject', 'config'],
function (logger, businessobject, config) {
...
}
此外,我在businessobject
文件夹中有一个models
模块。但是当我在listservice
模块中运行应用程序时,参数businessobject
的值为空。
我有什么可以告诉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 :(得分: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();