我正在學習angular2,並發現自己有時會有點混淆注入依賴關係。喜歡用RouteParams
Angular 2依賴注入 - 如何知道在哪裏插入依賴關係
import {RouteParams} from 'angular2/router';
例如當我們只是把它傳遞給構造方法,我們是好去:
constructor(private _photoService: PhotoService, private _routeParams: RouteParams){
}
但是,當我們使用ROUTER_DIRECTIVES
從同一模塊'angular2/router'
import {ROUTER_DIRECTIVES} from 'angular2/router';
我們需要將它傳遞給組件的指令數組:
directives: [ROUTER_DIRECTIVES]
所以,我的問題是,我怎麼知道,我需要通過它,什麼時候將依賴關係傳遞給指令或提供程序數組,或者只是傳遞給構造方法?
如果它們是指令,它是'聲明'(不是'指令'!)。如果他們是提供者,那就是「提供者」。如果你將一個未在'providers'中定義的提供者傳遞給構造函數,它將會拋出一個錯誤。它是如此簡單。您使用的是一些真正棄用的示例(alpha或beta)的代碼。我會建議RTM,而不是老的教程。相當長時間內,無論是指令還是提供者都不需要明確從路由器模塊導入。 – estus
'ROUTER_DIRECTIVES'已經過時了。你使用的是什麼Angular版本?它應該是'RouterModule'並進入'進口:''@NgModule()'' –