需要帮助获得散布(IOC)服务工作
我已经很详细地跟踪了服务提供的示例,但无法让我的工作。 我不能为了我的生活看到我要去哪里错了。
我期望输出如下所示
Loading initializeApp Loading Route 1 Loading Route 2 in initializeApp Registering route 1 Registering route 2 App initialized
但取而代之
Loading initializeApp in initializeApp App initialized
Route1.js
var self = module.exports = function(){ console.log("Loading Route 1") return { register: function() { console.log("Registering route 1"); } } }; self.__module = { provides: ['routes/register'] };
Route2.js基本上是Route1的一个副本
var self = module.exports = function(){ console.log("Loading Route 2") return { register: function() { console.log("Registering route 2"); } } }; self.__module = { provides: ['routes/register'] };
initializeApp.js
module.exports = function(registerRoutes) { var self = { initializeApp: function () { console.log("in initializeApp") return registerRoutes(); } } return self; }; module.exports.__module = { args: ['svc!routes/register'], provides: ['initializeApp'] }
index.js
var Scatter = require('scatter'); var scatter = new Scatter(); scatter.registerParticle([ __dirname + '/lib' ]); scatter.load('svc|sequence!initializeApp').then(function(initializeApp) { return initializeApp(); }).then(function() { console.log('App initialized'); });
我可以得到简单的dependency injection工作,但服务正在杀死我。 我已经尝试了各种调整,但不能得到比我包括的输出更好的东西。
包括的代码是最简单的,我可以做到,最接近提供的样本。
你把你的路线放入粒子子目录吗? 你的容器正在从lib/
subdir中加载它的粒子。 你的路线在粒子目录? 像lib/<particle name>/route1.js
。