已降级的 Angular2 组件没有提供 ActivatedRoute!错误

atc*_*way 5 angularjs angular-routing angular2-routing angular

目前我有一个 Angular 2 组件,它被降级为指令并用于引导式混合 Angular1/Angular2 应用程序。在浏览器中加载组件时遇到问题,出现以下错误:

没有 ActivatedRoute 的提供者!

注意:以下,ActivatedRoute 的无提供者 - Angular 2 RC5不涵盖此用例。

这个应用程序仍然使用来自引导的 Angular 1 应用程序的所有路由,并且到目前为止工作得很好;此时我还没有将路由转换为使用 Angular 2 路由。我在构建的新组件中的要求之一是检查查询参数。这可以通过以下代码完成:

import { ActivatedRoute } from '@angular/router';

constructor(
        private route: ActivatedRoute)

route.queryParams.subscribe(
    data => this.Id = data['Id']);
Run Code Online (Sandbox Code Playgroud)

认为的问题在于,上面的代码依赖于 Angular2 路由器,正如我所提到的,它还没有在我的混合引导应用程序中使用。所以这是我的问题:

  • 我可以在不使用 Angular2 路由器的情况下使用上面的代码并仍然检查查询字符串参数吗?用于$routeParams获取查询字符串信息的原始 Angular1 控制器。这在我的新 Angular2 组件中不受支持。如果上面的答案是我无法使用,ActivatedRoute因为我没有使用 Angular2 路由器,我应该尝试使用这种旧方法还是使用另一种方法;我需要做的就是检查组件中的路由参数?