Angular2:如何在响应式表单输入中显示字符数
Angular2: how do display character count on reactive form input
我正在使用Angular2响应式表单,并且我想显示一个textarea
的字符计数作为用户类型。
我希望只是能够包括的形式控制的name.length
在我的html像这样:
<div class="form-group">
<label for="incidentDescription">Brief Description of Incident</label>
<textarea id="incidentDescription" formControlName="incidentDescription" required [attr.maxLength]="maxIncidentDescriptionLength"></textarea>
<small><code>{{alaynaPage.incidentDescription.length}}</code> of <code>{{maxIncidentDescriptionLength}}</code> characters</small>
</div>
这"工作",但length
的形式控制滞后一个击键。例如,如果我在文本区域中输入a
, {{alaynaPage.incidentDescription.length}}
是0。如果是,然后输入b
(所以字符串是ab
) {{alaynaPage.incidentDescription.length}}
现在是1。
我如何使这个工作如预期的?
我让它通过黑客工作,但必须有一个更简单的方法:
//in component:
theLength: number = 0;
ngOnInit(): void {
this.buildForm();
(this.alaynaPageForm.controls['incidentDescription'] as FormControl).valueChanges.subscribe(value => {
// do something with value here
this.theLength = value.length;
});
}
//in my html:
<small class="form-text text-muted"><code>{{theLength}}</code> of <code>{{maxIncidentDescriptionLength}}</code> characters</small>
你只需要使用一个模板引用变量
<textarea id="incidentDescription" formControlName="incidentDescription" #incidentDescription></textarea>
<small class="form-text text-muted"><code>{{incidentDescription.value.length}}</code> of <code>{{maxIncidentDescriptionLength}}</code> characters</small>
你想要一个hack,这里有一个hack。使用:
{{alaynaPageForm.value?.incidentDescription?.length}}
相关文章:
- 根据输入显示窗体
- 无法根据用户在编辑窗口中的输入显示/隐藏jtable jquery字段
- 仅显示一条通用消息,而不是每个输入显示一条
- 如何从文本区域输入显示回车
- HTML 文本输入 * “值”;以不同的文本输入显示
- 轻量级 Javascript 表过滤器,以最少的字符输入显示结果
- 根据选定的单选按钮输入显示/隐藏 DIV
- 将表单输入显示为样式化字符串-Javascript
- 纸张输入显示输入和标签在彼此的顶部
- nvd3图表的csv输入显示错误(与时间格式有关)
- 输入显示不同的值在ng模型
- 在其他元素上进行输入显示
- 输入显示所有建议和强制选择建议
- 如何使输入显示在输出上
- 编程网页的建议,其中用户输入显示选定的图像
- 如何使两个不同的范围滑块输入显示相同的值,每当用户更新其中一个
- 为不同的用户输入显示不同的正则表达式消息
- 在Code Behind/ASP.net中基于用户输入显示模态对话框/确认框
- 如何使用预先输入显示图像.js
- Javascript:根据用户输入显示随机图像