【发布时间】:2017-02-23 19:22:28
【问题描述】:
我正在学习 angular2,有时发现自己有点困惑在哪里注入依赖项。比如当使用RouteParams
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]
所以,我的问题是,我怎么知道我需要将它传递到哪里,何时将依赖项传递给指令或提供程序数组,或者只是传递给构造函数方法?
【问题讨论】:
-
如果它们是指令,它是
declarations(不是directives!)。如果他们是提供者,则为providers。如果您将providers中未定义的提供程序传递给构造函数,它将引发错误。它是如此简单。您正在使用一些真正过时的示例(alpha 或 beta)中的代码。我建议 RTM,而不是旧教程。很长一段时间都不需要从路由器模块显式导入指令和提供程序。 -
ROUTER_DIRECTIVES已经过时了。您使用的是什么 Angular 版本?它应该是RouterModule并进入imports: [...]的@NgModule()
标签: javascript angular