2014-12-05 13 views
1

我已經按照Services提供的樣本詳細瞭解,但無法讓我的工作。我不能爲了我的生活看到我要去哪裏錯了。需要幫助獲得散點圖(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基本上是一個副本路線1

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'); 
}); 

我可以簡單的依賴注入工作,但服務是我的命。 我已經嘗試過各種調整,但無法獲得比我包含的輸出更好的東西。包含的代碼是最簡單的,我可以做到,並且最接近提供的樣本。

回答

1

你把你的路線放入粒子子目錄嗎?您的容器正在從lib/子目錄中加載其粒子。你的路線是否在粒子目錄中?類似於lib/<particle name>/route1.js

+0

不,因爲沒有實際的路線(只是模擬路線),它們在lib粒子中。服務需要在他們自己的粒子中嗎? – 2014-12-05 14:28:52

+0

'initializeApp'去哪了?在'lib'粒子中,還是路由粒子? – 2014-12-05 14:31:01

+0

好的,將路由移動到'lib'下的子粒子中,使得所有的工作都成功。感謝馬里奧的答案和圖書館:) – 2014-12-05 14:39:18