Javascript 将表单输入绑定到单个对象-angular2
我正在尝试将所有表单元素绑定到单个对象obj中,如下所示:Javascript 将表单输入绑定到单个对象-angular2,javascript,angular2-template,angular2-forms,Javascript,Angular2 Template,Angular2 Forms,我正在尝试将所有表单元素绑定到单个对象obj中,如下所示: <input type="text" [(ngModel)]="obj.name"> <select [(ngModel)]="obj.x"> <option *ngFor="let x in xx" [ngValue]="x">{{x}}</option> </select> {{x} 我得到TypeError:无法读取未定义的属性“name”。请支持我出错的地
<input type="text" [(ngModel)]="obj.name">
<select [(ngModel)]="obj.x">
<option *ngFor="let x in xx" [ngValue]="x">{{x}}</option>
</select>
{{x}
我得到TypeError:无法读取未定义的属性“name”。请支持我出错的地方。您没有在组件中声明对象,因此导致错误。对于普通绑定,您可以使用
obj?.name
,但对于将引发错误的模型绑定。因此,您可以简单地在component类中声明对象,如下所示:
export class MyComponent {
public obj: any = {
name: '',
x: null
}
}
错误就会消失。如果没有组件本身的代码,要确定发生了什么有点困难。它可能是生命周期,在生命周期中,它试图在初始化obj之前访问name。如果可能的话,添加组件,也许在组件中用一个空对象删除obj声明。你能告诉我obj需要如何初始化吗?你在应用程序端有任何特定的对象模型吗?还可以共享组件代码以帮助您