我的应用程序具有可为空的数据字段。例如两个日期字段 PublishOn & ExpiresOn。它们都可以为空或具有有效日期。
在客户端,我有一个包含匹配字段的对象,该对象填充了来自 Web API 的数据。但是当我如下绑定(bind)数据时
<input class="form-control" type="text" name="Title" [(ngModel)] = "entity.PublishOn">
当 PublishOn 属性有值时,它工作正常。当它为 null 时,它会失败。我知道我可以在获取数据后将任何空值转换为空字符串或其他内容,但想知道为什么 Angular 在这种情况下不灵活?我的意思是,如果它绑定(bind)了一个值,如果它是空的/null,它就保持原样。
处理这种情况的 Angular 方法是什么?
更新 - 1
我关注了 ValueAccessor 示例; here和 here
但是每次它运行时,都会给我一个异常“多个自定义值访问器匹配具有未指定名称属性的表单控件”我有一个简单的要求。那就是在控制它的绑定(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/