html - 如何设置具有双向绑定以及模板驱动表单验证的 Angular2 模板驱动表单元素
问题描述
如何正确设置 Angular 模板驱动的表单元素以同时具有模板驱动的验证和双向绑定?可能吗?
我尝试了几种使用 ngModel 的不同方式,但似乎无法让双向绑定工作,没有一些缺点。我确定我错过了一些愚蠢的东西。
当我使用[(ngModel)]="city"
以及按照#city="ngModel"
下面的示例使用时,我收到以下错误:
错误:无法将值“$event”分配给模板变量“city”。模板变量是只读的。
元素设置:
<div class="form-group col-md-3 mr-3">
<label
[class.error-label]="!city1.valid && city1.touched"
for="city"
>City or Town*
</label>
<input
type="text"
id="city"
ngModel
name="city"
required
#city="ngModel"
[(ngModel)]="city"
/>
<span *ngIf="!city.valid && city.touched" class="error-text"
>Please enter your City or Town</span
>
</div>
当我不使用[(ngModel)]="city"
时,我没有得到双向绑定。当我将本地引用重命名#city="ngModel"
为类似时,提交表单时#cityWhatever="ngModel"
的值city
是:undefined
<form
(ngSubmit)="onSubmit(personalDetails)"
#personalDetails="ngForm"
>
我正在运行 Angular 版本:“@angular/common”:“~9.1.11”
先感谢您!
解决方案
试试这个并删除 ngModel
<input
type="text"
id="city"
name="city"
required
#city="ngModel"
[(ngModel)]="model.city"
/>
<span *ngIf="!city.valid && city.touched" class="error-text">
Please enter your City or Town
</span>
推荐阅读
- firebase - 调试实时应用程序的实时数据库安全规则
- excel - 仅在粘贴到 Excel 时粘贴值
- java - keyExists 无法解析为变量 - Java
- biztalk - BizTalk 中同一终结点上收到的两方的路由消息
- android - 阻止 Android Studio Gradle 构建使用互联网数据的方法
- elasticsearch - 如何在没有偏移的情况下对 Elasticsearch 中的嵌套对象进行分页?
- excel - 在 Excel 工作表中搜索另一个工作表中的关键字列表
- java - 由于无法解析端点而导致的 Apache camel cron 错误:cron
- php - 不能在 Laravel 中使用 Illuminate\\Http\\JsonResponse 类型的对象作为数组
- ios - 使用 UIScreen 获取屏幕宽度以自动适应内容?