我需要檢索 URL 查詢,如www.website.com?a:b. 為此,我遵循了這個官方的角度教程,引導我在我的組件中找到這個簡單的代碼:
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.queryParams.subscribe(params => {
console.log(params)
})
}
這會在控制臺中觸發以下錯誤:
錯誤 NullInjectorError: R3InjectorError(AppModule)[ActivatedRoute -> ActivatedRoute -> ActivatedRoute]: NullInjectorError: No provider for ActivatedRoute!
雖然教程中沒有提到事件,但我將其添加ActivatedRoute到我的app.module.ts. 這會產生一個不同的錯誤:
錯誤:NG0204:無法決議 ActivatedRoute 的所有引數:(?, ?, ?, ?, ?, ?, ?, ?)。
我不知道為什么沒有其他人遇到這個問題,有人知道問題可能是什么嗎?謝謝。
uj5u.com熱心網友回復:
我認為您要實作的目標可能如下所示:
this.sub = this.activatedRoute.params.subscribe((params : Params) => {
// You now have all params in a single variable 'params'
});
uj5u.com熱心網友回復:
很可能在您的 app.module 或 main.module 檔案中您需要添加一個匯入。如果您查看此鏈接,它位于您鏈接的頁面底部,您將看到
@NgModule({
imports: [
BrowserModule,
FormsModule,
// This is what provides the ActivatedRoute service
// You likely don't need useHash: true, so you can leave it out
RouterModule.forRoot(routes, { useHash: true }) // .../#/crisis-center/
],
declarations: [
AppComponent,
PageNotFoundComponent
],
providers: [
],
bootstrap: [ AppComponent ]
})
export class AppModule { }
uj5u.com熱心網友回復:
這就是為什么我更喜歡直接在路由中使用引數。
應用程式路由.modules.ts
{ path: 'bible/:bookId/:chapterId/:verseIdStart/:verseIdEnd', component: BibleComponent },
圣經組件.ts
constructor(
private route: ActivatedRoute,
) {
const bookId: number = Number(this.route.snapshot.params.bookId) || 0;
const chapterId: number = Number(this.route.snapshot.params.chapterId) || 0;
const verseIdStart: number = Number(this.route.snapshot.params.verseIdStart) || 0;
const verseIdEnd: number = Number(this.route.snapshot.params.verseIdEnd) || 0;
}
https://www.xinthose.com/bible/43/3/16/16
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/516801.html
標籤:有角度的打字稿
