Я хочу включить фабричный шаблон в свои модули. У меня есть модуль 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 ... не имеет права загружать Сервис/...»
Есть ли способ предоставить ServiceFactory
полномочия на загрузку моего Услуги или есть другой способ достичь моей цели?
Отличная работа. Большое спасибо. –
Другая вещь, которую нужно добавить, заключается в том, что в настоящий момент ваш код не может быть правильно зарегистрирован, если вы используете какую-либо минификацию или несколько запросов в одной строке, например var a = require ('widget'), b = require ('chrome'); Это исправлено и доступно для выхода https://github.com/mozilla/addon-sdk/pull/738, но в настоящее время оно не находится в стабильном выпуске. – jxpx777