需要帮助获得散布(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

Interesting Posts