【问题标题】:PLS HELP ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'r2' Error: Cannot match any routes. URL Segment: 'r2'PLS HELP ERROR 错误:未捕获(承诺中):错误:无法匹配任何路由。 URL 段:'r2' 错误:无法匹配任何路由。 URL 段:'r2'
【发布时间】:2019-10-14 18:11:38
【问题描述】:

需要修复这个错误,我不知道该怎么做我的语法没有错,但是如果我运行它会显示错误

我的应用路由模块

import { NgModule } from '@angular/core';
import { PreloadAllModules, RouterModule, Routes } from '@angular/router';

const routes: Routes = [

  { path: 'recipes',
  children: [
    {
      path: '',
      loadChildren:
      './recipes/recipes.module#RecipesPageModule'
    },
    {
      path: ':recipeId',
      loadChildren:
      './recipes/recipe-detail/recipe-detail.module#RecipeDetailPageModule'
    }
  ]},
];

@NgModule({
  imports: [
    RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })
  ],
  exports: [RouterModule]
})
export class AppRoutingModule { }

我的食谱服务.ts

import { Injectable } from '@angular/core';
import { Recipe } from './recipe.model';

@Injectable({
  providedIn: 'root'
})
export class RecipesService {

  private recipes: Recipe[] = [
    {
      id: 'r1',
      title: 'Smoked Fish',
// tslint:disable-next-line: max-line-length
      imageUrl: '../assets/img/sugba.jpg',
      ingredients: ['Fish', 'Salt', 'Lemon Grass']
    },
    {
      id: 'r2',
      title: 'Raw Fish',
// tslint:disable-next-line: max-line-length
      imageUrl: '../assets/img/rawfish.jpg',
      ingredients: ['Fish', 'Salt', 'Onion']
    },
  ];

  constructor() { }
  getAllRecipes(){
    return [...this.recipes];
  }
  getRecipe(recipeId: string){
    return {...this.recipes.find(recipe => {
      return recipe.id === recipeId;
    })};
  }
}

我的食谱.page.html

<ion-header>
  <ion-toolbar>
    <ion-title color="primary">recipes</ion-title>
  </ion-toolbar>
</ion-header>

<ion-content>
<ion-list>
  <ion-item *ngFor="let recipe of recipes" [routerLink]="['/', recipe.id]">
    <ion-avatar>
      <ion-img [src] = "recipe.imageUrl">

      </ion-img>
    </ion-avatar>
    <ion-label>
      {{recipe.title}}
    </ion-label>
  </ion-item>
</ion-list>
</ion-content>


ERROR 错误:未捕获(在承诺中):错误:无法匹配任何路由。 URL 段:'r2' 错误:无法匹配任何路由。网址段:'r2'

【问题讨论】:

  • 我认为你需要:[routerLink]="['recipes/', recipe.id]" 实际匹配路线

标签: javascript angular ionic-framework


【解决方案1】:
<ion-item *ngFor="let recipe of recipes" [routerLink]="['/', recipe.id]">

[routerLink]="['/', recipe.id]" 表示您正在重定向到根路由。但是您的预期路线是该路线的子路线。

改用这个:

[routerLink]="recipe.id"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    相关资源
    最近更新 更多