Angular 8 中的 RouteLink 参数
RouteLink parameters in Angular 8
我在app.module
中定义了他的路线
{path:'empleados/:año/:mes', component:ListaEmpleadosComponent},
然后在我的 app.component.ts 那个 bootstrap 应用程序中我有这个
export class AppComponent {
tituloPagina = 'Parte de Horas';
fechaActual:Date=new Date();
mesActual:number=this.fechaActual.getMonth();
añoActual:number=this.fechaActual.getFullYear();
}
与模板关联:app.component.html
<nav class='navbar navbar-expand navbar-light bg-light'>
<a class='navbar-brand'>{{tituloPagina}}</a>
<ul class='nav nav-pills'>
<li><a class='nav-link' [routerLink]="['welcome']">Home</a></li>
<li><a class='nav-link'
[routerLink]="['/empleados',{{añoActual}}, {{mesActual}}]">Empleados</a></li>
<label>{{fechaActual}}</label>
</ul>
</nav>
<div class='container'>
<router-outlet></router-outlet>
</div>
但是我得到这个错误
未捕获的错误:模板解析错误:
解析器错误:在 ng://[=33 中的 [[/empleados/datos/',{{añoActual}}, {{mesActual}}]] 中的第 20 列出现了插值 ({{}}) =].html@5:30 (
有什么想法吗?
此致
你的语法错误你应该像这样传递没有引号的变量
[routerLink]="['/empleados', añoActual, mesActual]"
但我建议您将变量 añoActual
更改为没有特殊字符的字母变量
你应该像这样传递路由参数,
<a class='nav-link'
[routerLink]="['/empleados', añoActual, mesActual]">Empleados</a>
不要分析URL。让路由器来做。
路由器从 URL 中提取路由参数,并通过 ActivatedRoute 服务将其提供给 ListaEmpleadosComponent。
路由器从数组中组成目标 URL,如下所示:localhost:4200/empleados/x/y。
参考:https://angular.io/guide/router#setting-the-route-parameters-in-the-list-view
试试这个
[routerLink]="['/empleados', {añoActual:añoActual , mesActual: mesActual}]"
您将从激活的路由参数中在路由组件中接收它作为 JSON 对象,您可以解析它并进一步使用。
问题是变量的名称"añoActual"如果我使用 actualYear,此代码可以正常工作
<li><a class='nav-link'
[routerLink]="['/empleados',actualYear, actualMonth]">Empleados</a></li>
我在app.module
中定义了他的路线{path:'empleados/:año/:mes', component:ListaEmpleadosComponent},
然后在我的 app.component.ts 那个 bootstrap 应用程序中我有这个
export class AppComponent {
tituloPagina = 'Parte de Horas';
fechaActual:Date=new Date();
mesActual:number=this.fechaActual.getMonth();
añoActual:number=this.fechaActual.getFullYear();
}
与模板关联:app.component.html
<nav class='navbar navbar-expand navbar-light bg-light'>
<a class='navbar-brand'>{{tituloPagina}}</a>
<ul class='nav nav-pills'>
<li><a class='nav-link' [routerLink]="['welcome']">Home</a></li>
<li><a class='nav-link'
[routerLink]="['/empleados',{{añoActual}}, {{mesActual}}]">Empleados</a></li>
<label>{{fechaActual}}</label>
</ul>
</nav>
<div class='container'>
<router-outlet></router-outlet>
</div>
但是我得到这个错误 未捕获的错误:模板解析错误: 解析器错误:在 ng://[=33 中的 [[/empleados/datos/',{{añoActual}}, {{mesActual}}]] 中的第 20 列出现了插值 ({{}}) =].html@5:30 (
有什么想法吗?
此致
你的语法错误你应该像这样传递没有引号的变量
[routerLink]="['/empleados', añoActual, mesActual]"
但我建议您将变量 añoActual
更改为没有特殊字符的字母变量
你应该像这样传递路由参数,
<a class='nav-link'
[routerLink]="['/empleados', añoActual, mesActual]">Empleados</a>
不要分析URL。让路由器来做。 路由器从 URL 中提取路由参数,并通过 ActivatedRoute 服务将其提供给 ListaEmpleadosComponent。
路由器从数组中组成目标 URL,如下所示:localhost:4200/empleados/x/y。
参考:https://angular.io/guide/router#setting-the-route-parameters-in-the-list-view
试试这个
[routerLink]="['/empleados', {añoActual:añoActual , mesActual: mesActual}]"
您将从激活的路由参数中在路由组件中接收它作为 JSON 对象,您可以解析它并进一步使用。
问题是变量的名称"añoActual"如果我使用 actualYear,此代码可以正常工作
<li><a class='nav-link'
[routerLink]="['/empleados',actualYear, actualMonth]">Empleados</a></li>