我正在学习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()'' –