元素隐含有一个“任何”的元素。输入因为类型' ActivatedRouteSnapshot'没有索引签名

时间:2018-03-06 17:13:47

标签: typescript angular2-routing

我正在使用Angular2创建简单的路由,我想从对象属性名称传递到url并且一切正常,我的链接是动态生成的,但几秒钟后我得到了这个错误:

enter image description here

我的routerLink代码:

      <a [routerLink]="['category/', electronic.name]" *ngFor="let electronic of electronics ">
        {{electronic.name}}
      </a>

我的组件代码:

import { Component, OnInit } from '@angular/core';
import { DatabaseService } from "../../service/database.service";
import { ActivatedRoute } from '@angular/router';

@Component({
  selector: 'app-category-list',
  templateUrl: './category-list.component.html',
  styleUrls: ['./category-list.component.css']
})
export class CategoryListComponent implements OnInit {

  constructor(private database: DatabaseService, private activeRoute: ActivatedRoute) { }

  ngOnInit() {
    let name = this.activeRoute.snapshot['name'];
    console.log(name);
  }

}

1 个答案:

答案 0 :(得分:0)

TypeScript编译器抱怨以下行

let name = this.activeRoute.snapshot['name'];

这是因为如果您查看Angular docs,它在ActivatedRouteSnapshot界面上没有索引器来检索您正在尝试的信息。索引器看起来像这样:

interface Example {
    [key:string]: any;
}

您需要查看文档,了解使用该对象的正确方法。