angular - 当用户输入角度时动态计数单词
问题描述
- 当用户在 textarea 中输入时,我想计算字数
- 如果他/她超过 100 个单词,则不应允许他/她打字。
- 我需要在他/她键入时动态显示字数
样本.component.ts
wordCounter(){
this.wordCount = this.text ? this.text.split(/\s+/) : 0;
this.words=this.wordCount ? this.wordCount.length:0;
}
这是我计算单词的功能
示例.component.html
<textarea [(ngModel)]="text" ng-change="wordCounter()" id="wmd-input" name="post-text" class="wmd-input s-input bar0 js-post-body-field processed" data-post-type-id="2" cols="92" rows="15" tabindex="101" data-min-length="" oncopy="return false;" onpaste="return false;" oncut="return false;"></textarea>
<div>Words:<span id="wordCount">{{ words }}</span></div>
这是我的 html 代码请指导我这样做。提前致谢
解决方案
您应该使用keydown
event 和 useViewChild
来获取文本区域中的文本
更新:如果你只想限制 100 字,你可以添加[attr.disabled]="words >100 ? '' : null"
禁用 textarea
HTML
<textarea [attr.disabled]="words >100 ? '' : null" (keydown)="wordCounter()" #text id="wmd-input" name="post-text"
class="wmd-input s-input bar0 js-post-body-field processed" data-post-type-id="2" cols="92" rows="15" tabindex="101" data-min-length="" oncopy="return false;" onpaste="return false;" oncut="return false;"></textarea>
<div>Words:<span id="wordCount">{{ words }}</span></div>
TS
export class AppComponent {
wordCount: any;
@ViewChild("text") text: ElementRef;
words: any;
wordCounter() {
//alert(this.text.nativeElement.value)
this.wordCount = this.text ? this.text.nativeElement.value.split(/\s+/) : 0;
this.words = this.wordCount ? this.wordCount.length : 0;
}
}
推荐阅读
- javascript - React-Leaflet Map 不更新
- javascript - 在 React Native 中单击图标播放音频剪辑
- rest - Tibco BW 条件流
- sql - SQL:连接表格并将每个单元格除以另一个表格中的匹配单元格?
- android - 如果您正在开发 HTML5 网页,在 Android 手机上为图像编写文件路径的正确方法是什么?
- postgresql - 关于为 int 组合创建索引的建议。范围 + 整数 |Postgres
- image - 从 MATLAB 中的图像中选择灰色块
- node.js - grpc - 跨机器和跨语言
- php - Cake PHP 中前缀控制器中的 Flash 管理
- php - Laravel 日期列上的条件具有日期范围字符串