我一直在使用Angular2框架中的一些示例代码。例如,英雄样本。有一件事我目前不理解。是什么因素表明我的构造函数需要Router, Service
或反之亦然。
我目前理解为什么@RouteConfig
需要工作,以及调用服务,但是说&#34的明确因素是什么;因为X,你需要构造函数是Router,服务"
该类是否实现了OnInit?是否在应用程序组件的RouteConfig中引用了该类?这样的订单是什么,我可以反过来反过来吗?
最后一个问题,如果我将1个compoennt定义为Router,Service
而另一个是Service, Router
如果有人能够给我一些见解,为什么需要这样设置以及定义来自哪里,那么更能帮助我理解Angular 2的概念。
如果您可以为我指出重要的doc文件,那就太棒了,所以我可以阅读更多内容。
答案 0 :(得分:1)
如果您有像
这样的构造函数constructor(private router:Router, private service:Service) {}
然后你告诉Angulars DI当Angular需要创建该类的实例时,应该将Router
实例作为第一个构造函数参数传递,并将Service
实例作为第二个构造函数参数传递。
Angulars DI然后在其注入器树中查找提供程序,并从找到匹配提供程序的注入器返回一个实例。
要使其工作,该课程需要拥有像@Component()
,@Directive()
,@Pipe()
或@Inectable()
这样的装饰器,它只适用于Angular创建的实例。如果您使用new Service()
或new Router()
,则您自己需要获取并明确传递所需的构造函数参数。