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

没有ActivatedRoute的提供商!

注意:以下,No provider for 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']);

我认为问题在于上面的代码依赖于Angular2路由器,正如我所提到的那样,我的混合引导应用程序尚未使用它 . 所以这是我的问题:

  • 我可以在不使用Angular2路由器的情况下使用上面的代码并仍然检查查询字符串参数吗?原始的Angular1控制器使用 $routeParams 来获取查询字符串信息 . 这不是't supported in my new Angular2 component. If the answer to the above is I can'使用 ActivatedRoute 因为我没有使用Angular2路由器,我应该尝试使用这个旧方法还是使用另一个;我需要做的就是检查组件中的路由参数?