Javascript 如何使用空/空/未定义的对象分配[(ngModel)]?角度4
我想将.html代码中的[(ngModel)]分配给一个空的对象(null或未定义),但它给出了\u co.object为null的错误。 有两种情况,第一种是我的对象有价值,第二种是它没有价值。第一种情况下,ngModel可以正常工作,但当涉及到第二种情况时,它给出了为null的错误。我试过用猫王(?)操作符,但没用 问题已解决!!谢谢大家 My.ts页面Javascript 如何使用空/空/未定义的对象分配[(ngModel)]?角度4,javascript,angular,firebase,ionic3,Javascript,Angular,Firebase,Ionic3,我想将.html代码中的[(ngModel)]分配给一个空的对象(null或未定义),但它给出了\u co.object为null的错误。 有两种情况,第一种是我的对象有价值,第二种是它没有价值。第一种情况下,ngModel可以正常工作,但当涉及到第二种情况时,它给出了为null的错误。我试过用猫王(?)操作符,但没用 问题已解决!!谢谢大家 My.ts页面 profile: Profile = { fullName: '', email: '',
profile: Profile = {
fullName: '',
email: '',
address: '',
};
<ion-item>
<ion-label>Full Name:</ion-label>
<ion-input [(ngModel)]="profile.fullName"></ion-input>
</ion-item>
My.html页面
profile: Profile = {
fullName: '',
email: '',
address: '',
};
<ion-item>
<ion-label>Full Name:</ion-label>
<ion-input [(ngModel)]="profile.fullName"></ion-input>
</ion-item>
全名:
错误类型错误:“\u co.profile为空”谢谢大家。我发现我的错误是在另一个地方。我不知何故在ngOnInit中将“profile”对象从空重新定义为未定义。像这样:
ngOnInit(){
//code...
if(!this.profile){
this.profile = {} as Profile; //here was the mistake which I accidentally made.
//and it was assigning my object to null
}
}
当您声明概要文件时,您应该添加所有子项,这将停止未定义概要文件
export class Foo {
public profile:any = {
fullName='',
foo = '',
bar = ''
}
您始终需要确保获取对象的属性。或者将来你可能会遇到意想不到的问题 要么使用ngIf
<ion-item *ngIf="profile">
<ion-label>Full Name:</ion-label>
<ion-input [(ngModel)]="profile.fullName"></ion-input>
</ion-item>
全名:
或者让它成为可选的
<ion-item>
<ion-label>Full Name:</ion-label>
<ion-input [(ngModel)]="profile?.fullName"></ion-input>
</ion-item>
全名:
当绑定到可空对象的属性时,可以通过创建setter和getter并绑定到该属性别名来防止对象为空时出现错误
例如,代替
[(ngModel)]="model[`${this.field.key}_selectedObject`]"
改为
[(ngModel)]="fieldModel"
然后在ts代码中添加
public get fieldModel(): any {
if (!this.model) return null;
return this.model[`${this.field.key}_selectedObject`];
}
public set fieldModel(value: any) {
if (!this.model) return;
this.model[`${this.field.key}_selectedObject`] = value;
}
\u co
在哪里?用*ngifn保护它。如果这个代码没有问题,请发布完整的代码。@AnkitAgarwal我不知道什么是\u co。它给出了这样一个引用“profile”对象的错误。@Domi你是什么意思?如果我说*ngIf=“profile!=null”,那么它将不会显示表单,但我需要填写表单,以便将这些值提供给“profile”对象Timothy,我理解确保获取属性的必要性,但您能否详细说明“意外问题”-我可以参考有文档记录的列表吗?@sikanderBabwani“意外问题”与角度是这一个。它可能会导致无限循环和许多其他问题。强烈建议您了解它