angular - 将 [(ngModel)] 与数据库中的可空类型一起使用

标签 angular

我的应用程序具有可为空的数据字段。例如两个日期字段 PublishOn & ExpiresOn。它们都可以为空或具有有效日期。

在客户端,我有一个包含匹配字段的对象,该对象填充了来自 Web API 的数据。但是当我如下绑定(bind)数据时

<input class="form-control" type="text" name="Title" [(ngModel)] = "entity.PublishOn">

当 PublishOn 属性有值时,它工作正常。当它为 null 时,它会失败。我知道我可以在获取数据后将任何空值转换为空字符串或其他内容,但想知道为什么 Angular 在这种情况下不灵活?我的意思是,如果它绑定(bind)了一个值,如果它是空的/null,它就保持原样。

处理这种情况的 Angular 方法是什么?

更新 - 1

我关注了 ValueAccessor 示例; herehere

但是每次它运行时,都会给我一个异常“多个自定义值访问器匹配具有未指定名称属性的表单控件”我有一个简单的要求。那就是在控制它的绑定(bind)值之前应该检查是否为空。如果它是 null 应该返回一个空字符串!

最佳答案

如果您受限于所使用的 Angular 版本,那么您可以使用 ngIf 语句来处理这种情况。

<ng-template [ngIf]= "ngModel" >
 <input class="form-control" type="text" name="Title" [(ngModel)] = "entity.PublishOn">
</ng-template>

 <ng-template [ngIf]= "!ngModel" >
 <input class="form-control" type="text" name="Title" >
</ng-template>

关于angular - 将 [(ngModel)] 与数据库中的可空类型一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50257168/

相关文章:

angular - ng2-translate 指令 : why does renderer. setText 不起作用?

python - 如何将 angular 4 与 Django 集成

forms - 如何在响应式表单中使用对象数组作为控件

Angular 6 : Sharing component between feature modules doesn't work

angular - 为什么 mat-select 不能在模态内工作? onclick 它显示模态后面的选项

angular - 从相机拍摄照片后图像未刷新

javascript - 更改组件的模板 Angular 2

javascript - 来自其他组件的 Angular 5 输入数组,导致长度为 0

javascript - 如何禁用输入验证时出现的弹出窗口 ("Please fill out this field")?

Angular [innerHTML] 与 document.getElementById().innerHTML