angular - 将值分配到导入的数据模型中
问题描述
我创建了一个这样的模型:
export class User {
firstName: string;
lastName: string;
email: string;
faculty: string;
academicYear: number;
participatingEvents: Array<string>;
myClubs: Array<{id: string, isPresident: boolean, isEventPlanner: boolean}>;
}
并在组件中使用此模型将数据上传到 firebase
export class TestComponent implements OnInit {
message: string;
user1: User;
ngOnInit() {
this.user1.firstName = 'PRIYASHAN';
this.user1.lastName = 'JAYASANKHA';
this.user1.email = 'PRIYASHANSHELL@GMAIL.COM';
this.user1.faculty = 'UCSC';
this.user1.academicYear = 1;
this.user1.participatingEvents = ['ABC', 'DEF'];
this.user1.myClubs = [
{id: 'QQQ', isEventPlanner: true , isPresident: true},
{id: 'WWW', isEventPlanner: false , isPresident: true}
];
this.af.submitData(this.user1);
}
}
但它不工作我的控制台显示
解决方案
您会收到此错误,因为user1
在您尝试对其设置值之前未定义。在尝试访问它之前初始化对象。
user1: User;
ngOnInit() {
this.user1 = new User();
// ... rest of the code
}
此外,您应该创建一个构造函数来在创建异议期间初始化所有这些属性。这样代码变得更短,并避免了开发过程中的印刷错误。
通过这些更改,您的代码将如下所示:
export class User {
constructor(
public firstName: string,
public lastName: string,
public email: string,
public faculty: string,
public academicYear: number,
public participatingEvents: Array<string>,
public myClubs: Array<{
id: string;
isPresident: boolean;
isEventPlanner: boolean;
}>
) {}
}
创建对象 + 初始化其属性
ngOnInit() {
this.user1 = new User(
"PRIYASHAN",
"JAYASANKHA",
"PRIYASHANSHELL@GMAIL.COM",
"UCSC",
1,
["ABC", "DEF"],
[
{ id: "QQQ", isEventPlanner: true, isPresident: true },
{ id: "WWW", isEventPlanner: false, isPresident: true }
]
);
}
推荐阅读
- flutter - Flutter 错误:需要一个“String”类型的值,但得到一个“int”类型的值
- python - 如何在python中用字典更新json对象
- powerbi - 导出每个 Power BI 报表的所有用户和访问权限
- c# - 以正确的顺序更新从和到跨度以避免与先前值相交冲突
- jira - 对于 Jira 数据库中的自定义字段,Stringvalue 字段为空
- html - 悬停在联系按钮和表单字段文本颜色上
- node.js - 我一直在下载 nodemon 一个 npm 包,但它不工作,这是我的代码
- windows - 如何在 windows 上通过 SSH 连接到本地网络?
- botframework - 更改基于 MS Teams 搜索的消息扩展中的登录文本
- amazon-web-services - 销毁失败/取消的 Terraform 应用的 AWS 资源