我想在工作模式中包含工厂模式。我有一个模块ServiceFactory.js
,看起来像这样:授予模块加载其他模块的权限
exports.createService = function(serviceName, paramObj){
return require('Services/'+serviceName).Service.new(paramObj);
};
该模块应该需要其他模块(服务)的名称和创建一个实例。一般Service.js
lookes这样的:
const Base = require('base').Base;
exports.Service = Base.extend({
getName: function(){
return this.name;
},
invoke: function(){
//do something
},
});
所有其他服务的扩展基础服务。我在“lib”中的子文件夹“服务”中收集所有服务。当我现在用我厂的createService
方法我得到这样一个错误:“模块:服务工厂......没有权力来加载服务/ ...”
有没有办法给予ServiceFactory
加载我的权力服务还是有另一种方法来实现我的目标?
很好的解决方法。非常感谢。 – 2012-04-18 07:47:23
另一件需要补充的是,目前,如果您在一行中使用任何缩小或多个要求,您的代码就无法正确注册,如var a = require('widget'),b = require('chrome');这已经修复并且正式发布https://github.com/mozilla/addon-sdk/pull/738,但目前它尚未发布在稳定版本中。 – jxpx777 2013-03-28 14:20:19