Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度8-双向数据绑定,空值_Angular_2 Way Object Databinding - Fatal编程技术网

Angular 角度8-双向数据绑定,空值

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

我有一个问题,双向数据绑定和角度8

在下面的示例中,填充了我的模型(service.formData),但其中一个变量(实际上是子表)为null(service.formData.ProjectSshaspModel) 如果我在数据库中填充数据,双向绑定似乎可以正常工作,并检索和传递数据。但是当页面加载时变量为null,并且我填充了模型(HTML页面),对象似乎没有填充

我在下面列出了HMTL、Angular双向数据绑定和JSON值。如果可能的话,请帮忙。多谢各位

 <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
        &nbsp;
        <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,必须实例化。谢谢!