code

ActivatedRouteSnapshot을 주입할 수 없습니다.

starcafe 2023. 8. 6. 10:14
반응형

ActivatedRouteSnapshot을 주입할 수 없습니다.

구성 요소에 ActivatedRoute Snapshot을 주입하는 작업이 작동하지 않습니다(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)"

구성 요소에서 ActiveRoute Snapshot은 다음과 같이 주입됩니다.

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을 성공적으로 주입하려면 무엇이 부족합니까?

ActivatedRouteSnapshot 대신 ActivatedRoute를 사용합니다.그런 다음 스냅샷을 다음과 같이 사용할 수 있습니다.

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

언급URL : https://stackoverflow.com/questions/44205664/unable-to-inject-activatedroutesnapshot

반응형