将ActivatedRouteSnapshot注入组件不起作用(注入ActivatedRoute也不起作用).这里是堆栈跟踪:

"Error: Can't resolve all parameters for ActivatedRouteSnapshot: (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?).
at SyntaxError.ZoneAwareError (http://localhost:4200/polyfills.bundle.js:7042:33)
at SyntaxError.BaseError [as constructor] (http://localhost:4200/vendor.bundle.js:73735:16)
at new SyntaxError (http://localhost:4200/vendor.bundle.js:6140:16)
at CompileMetadataResolver._getDependenciesMetadata (http://localhost:4200/vendor.bundle.js:19345:31)
at CompileMetadataResolver._getTypeMetadata (http://localhost:4200/vendor.bundle.js:19220:26)
at CompileMetadataResolver._getInjectableMetadata (http://localhost:4200/vendor.bundle.js:19208:21)
at CompileMetadataResolver.getProviderMetadata (http://localhost:4200/vendor.bundle.js:19450:40)
at http://localhost:4200/vendor.bundle.js:19408:49
at Array.forEach (native)
at CompileMetadataResolver._getProvidersMetadata (http://localhost:4200/vendor.bundle.js:19375:19)
at CompileMetadataResolver.getNonNormalizedDirectiveMetadata (http://localhost:4200/vendor.bundle.js:18848:30)
at CompileMetadataResolver._loadDirectiveMetadata (http://localhost:4200/vendor.bundle.js:18736:23)
at http://localhost:4200/vendor.bundle.js:18937:54
at Array.forEach (native)
at CompileMetadataResolver.loadNgModuleDirectiveAndPipeMetadata (http://localhost:4200/vendor.bundle.js:18936:41)"

在组件中,ActivatedRouteSnapshot的注入方式如下:

constructor([...], private router: Router,
          private route: ActivatedRouteSnapshot) {
    [...]
}

ActivatedRouteSnapshot在app.component.ts中提供:

@Component({
    selector: 'app-root',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.css'],
    providers: [[...], ActivatedRouteSnapshot]
})

我试图访问查询参数,类似于这里的操作:https://stackoverflow.com/a/38997116/3433306

根据文档,它应该很简单,只需将其添加到构造函数参数:https://angular.io/docs/ts/latest/api/router/index/ActivatedRouteSnapshot-interface.html

要成功注入ActivatedRouteSnapshot,我缺少什么?

推荐答案

使用ActivatedRoute而不是ActivatedRouteSnapshot.然后您可以像这样使用快照:

constructor(activatedRoute: ActivatedRoute) { 
  var snapshot = activatedRoute.snapshot;
}

Typescript相关问答推荐

为什么仅对对象而不对简单类型需要满足?

如何准确确定此特定场景中的类型?

在角形加载组件之前无法获取最新令牌

APP_INITIALIZER—TypeError:appInits不是函数

在这种情况下,如何获得类型安全函数的返回值?

如何判断输入是否是TypeScript中的品牌类型?

React typescribe Jest调用函数

为什么tsx不判断名称中有"—"的属性?'

类型脚本类型字段组合

如何在单击停止录制按钮后停用摄像机?(使用React.js和Reaction-Media-Recorder)

访问继承接口的属性时在html中出错.角形

如何调整对象 struct 复杂的脚本函数的泛型类型?

类型脚本映射类型:从对象和字符串列表到键值对象

限制返回联合的TS函数的返回类型

如何在不违反挂钩规则的情况下动态更改显示内容(带有状态)?

如何使函数参数数组不相交?

基于闭包类型缩小泛型类型脚本函数的范围

在tabel管理区域react js上设置特定顺序

无法使用prisma中的事务更新记录

使用本机 Promise 覆盖 WinJS Promise 作为 Chrome 扩展内容脚本?