角度6 kendo-dropdownlist错误TypeError:无法读取未定义的属性'值'

时间:2018-11-27 21:25:25

标签: angular typescript kendo-ui-angular2

我在HTML中使用了可搜索的kendo-dropdownlist。如果在下拉列表中选择了值,则代码可以正常工作。但是,如果未选择任何内容,则会在Chrome开发人员工具中显示以下错误: 错误TypeError:无法读取未定义的属性“值”。

<form class="form-horizontal" #projDetails="ngForm">
                <div class="form-group">
                    <label class="control-label col-sm-2" for="Approver">Approver</label>
                    <div class="col-sm-6">
                        <kendo-dropdownlist [data]="IdData"
                                            [textField]="'text'"
                                            [valueField]="'value'"
                                            [filterable]="true"
                                            (valueChange)="valueChange($event)"
                                            (filterChange)="filterChange($event)"
                                            [(ngModel)]="SelectedIdItem"
                                            name="SelectedIdItem"
                                            [popupSettings]="{ height: 300, width: 300 }"
                                            #SelectedIdItemControl="ngModel"
                                            required
                                            title="Start typing to search">
                        </kendo-dropdownlist>
                    </div>
                </div>
</form>
<button type="submit" class="btn btn-primary" (click)="SubmitDetails(projDetails);">Submit></button>

这是组件类,单击“提交”按钮:

   public SubmitDetails(form: NgForm) {
        var dataProjDetail = {
            'Id': form.value.SelectedIdItem.value == undefined ? null : form.value.SelectedIdItem.value 

        };

        //passing data to service
    }

我尝试检查未定义的值并使用替换为空

form.value.SelectedIdItem.value == undefined ? null : form.value.SelectedIdItem.value 

但是仍然无法正常工作。请指导如何处理问题

1 个答案:

答案 0 :(得分:0)

别担心,看起来一切正常。当然,值不是undefined和null的属性。但是我们可以使用<button [disabled]="!formGroup.valid">Submit</button>

SubmitDetails(form: ngForm) {
  if (! form.valid) return;
  ...
}

在提交之前拒绝不良数据。通常使用formGroup,所以我不能确定ngForm.valid可以,但是那里的逻辑相同。