访问数据时出现此类错误

时间:2020-04-09 06:36:06

标签: json angular

    import { Component, OnInit } from "@angular/core";
    import { GetDataService } from "../../services/get-data.service";
    import { user } from "../../models/user";
    import { FormBuilder,FormGroup,Validators } from '@angular/forms';
    import { ActivatedRoute, Router } from "@angular/router";
    import { Subscription } from "rxjs";
    @Component({
      selector: "app-users-detail",
      templateUrl: "./users-detail.component.html",
      styleUrls: ["./users-detail.component.css"],
    })

export class UsersDetailComponent implements OnInit {
  users: user;
  private routeSub: Subscription;
  constructor(
    private route: ActivatedRoute,
    private getData: GetDataService,
    private router: Router
  ) {}

  ngOnInit(): void {
    this.getData
      .getDataById(this.route.snapshot.params.userId)
      .subscribe((data) => {
        this.users = data;

        console.log(this.users);
      });
  }
}

this.data变量包含JSON作为

{ 编号:7 名称:“ iam”, 电子邮件:“ roshan@gmail.com”, 国家:“ asad”, 城市:“ asdasd”, 电话:“ 1122”, }

但是当我尝试访问users.name时,得到“无法读取未定义的属性'name'”

2 个答案:

答案 0 :(得分:1)

users: user;替换为users = new user();

这样,您不会收到错误,但是users.name仍然会给undefined,直到为其分配了一些值

答案 1 :(得分:0)

尝试像这样使用users.name:

{{ users?.name }}

这可能正在发生,因为您正在尝试在分配它之前访问它。上面的答案没什么大不了,但是使用new User()预先分配一个值不是一个好主意,为什么可以一次又一次地分配该值,而使用可以在视图中将其固定呢? 希望这会有所帮助。