Angular 角度8-双向数据绑定,空值
我有一个问题,双向数据绑定和角度8 在下面的示例中,填充了我的模型(service.formData),但其中一个变量(实际上是子表)为null(service.formData.ProjectSshaspModel) 如果我在数据库中填充数据,双向绑定似乎可以正常工作,并检索和传递数据。但是当页面加载时变量为null,并且我填充了模型(HTML页面),对象似乎没有填充 我在下面列出了HMTL、Angular双向数据绑定和JSON值。如果可能的话,请帮忙。多谢各位Angular 角度8-双向数据绑定,空值,angular,2-way-object-databinding,Angular,2 Way Object Databinding,我有一个问题,双向数据绑定和角度8 在下面的示例中,填充了我的模型(service.formData),但其中一个变量(实际上是子表)为null(service.formData.ProjectSshaspModel) 如果我在数据库中填充数据,双向绑定似乎可以正常工作,并检索和传递数据。但是当页面加载时变量为null,并且我填充了模型(HTML页面),对象似乎没有填充 我在下面列出了HMTL、Angular双向数据绑定和JSON值。如果可能的话,请帮忙。多谢各位 <form #form
<form #form="ngForm" autocomplete="off" (submit)="OnSubmit(form)" *ngIf="service.formData">
<div class="row" id="section1">
<div class="col-md-10">
<input type="hidden" name="ProjectID" #ProjectID="ngModel" [(ngModel)]="service.formData.ProjectID" />
<input type="hidden" name="ProjectSshaspModel.ProjectSshaspID" #ProjectSshaspModel.ProjectSshaspID="ngModel" [(ngModel)]="service.formData.ProjectSshaspModel.ProjectSshaspID" />
<input type="radio" id="not-required"
name="CompanyLogoRequired" #ProjectSshaspModel.CompanyLogoRequired="ngModel" [(ngModel)]="service.formData.ProjectSshaspModel && service.formData.ProjectSshaspModel.CompanyLogoRequired" ng-checked="(CompanyLogoRequired==0)" [value]="0" />
Not Required
<input type="radio" id="incorporate"
name="CompanyLogoRequired" #ProjectSshaspModel.CompanyLogoRequired="ngModel" [(ngModel)]="service.formData.ProjectSshaspModel && service.formData.ProjectSshaspModel.CompanyLogoRequired" ng-checked="(CompanyLogoRequired==1)" [value]="1" />
Incorporate
{
"projectModel": {
"ProjectSshaspModel": null,
"ProjectID": "a9400d92-de37-4c00-957e-08d7bbd4b4c5",
"ProjectNumber": "2020-1233",
"Consultant": "Joe Test",
"AssignedDate": "2020-02-28T00:00:00",
"ClientDueDate": "2020-02-29T00:00:00",
"ProjectCreationDate": "2020-02-28T00:00:00",
"ScopeOfWork": "Scope of work",
"Service": 0,
"ClientName": "Ebay",
"CompanyContact": "John Smith",
"CompanyContactPhone": "555-555-5555",
"CompanyContactEmail": "jsmith@comcast.net",
"CompanyAddress": "123 Sesame Place Test, JN 01111",
"CompanyType": 2
}
不需要
合并
{
“项目模型”:{
“ProjectSshaspModel”:空,
“ProjectID”:“a9400d92-de37-4c00-957e-08D7BB44B4C5”,
“项目编号”:“2020-1233”,
“顾问”:“乔测试”,
“指定日期”:“2020-02-28:00:00”,
“客户付款日期”:“2020-02-29T00:00:00”,
“项目创建日期”:“2020-02-28:00:00”,
“工作范围”:“工作范围”,
“服务”:0,
“客户名称”:“易趣”,
“公司联系人”:“约翰·史密斯”,
“公司联系人电话”:“555-555-5555”,
“公司联系人电子邮件”:jsmith@comcast.net",
“公司地址”:“123芝麻地测试,JN 01111”,
“公司类型”:2
}
}假设您的
ngModel
是用变量service.formData.ProjectSshaspModel.ProjectSshaspID
定义的,则只要求最后一个变量为null,之前的属性不能为null
(在这种情况下,ProjectSshaspID
只能是null
。因此我建议在组件初始化期间初始化变量,如下所示
服务台
this.formData.ProjectSshaspModel = {};
另外,为什么您的ngModel不正确地定义了两个变量
[(ngModel)]="service.formData.ProjectSshaspModel && service.formData.ProjectSshaspModel.CompanyLogoRequired"
ngModel只需要更新一个变量,所以将其更改为一个变量
[(ngModel)]="service.formData.ProjectSshaspModel.CompanyLogoRequired"
devtools控制台上没有错误?chrome调试中没有错误。JSON看起来像上面的帖子中那样,而当我在DB中预推表时,它完全填充了this.formData.ProjectSshaspModel={};使我走上了正确的道路。因为数据库中没有行,所以实际属性为null,必须实例化。谢谢!