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'”
答案 0 :(得分:1)
将users: user;
替换为users = new user();
这样,您不会收到错误,但是users.name
仍然会给undefined
,直到为其分配了一些值
答案 1 :(得分:0)
尝试像这样使用users.name:
{{ users?.name }}
这可能正在发生,因为您正在尝试在分配它之前访问它。上面的答案没什么大不了,但是使用new User()预先分配一个值不是一个好主意,为什么可以一次又一次地分配该值,而使用可以在视图中将其固定呢? 希望这会有所帮助。