He escrito este código para verificar si el total de palabras es al menos 3. Funciona cuando pongo menos de 3 palabras y dejo el cuadro de texto haciendo clic afuera o tabulador. pero solo funciona la primera vez si salgo la segunda vez no da, es decir, no hay error. Así que tengo que ir de nuevo y asegurarme de que las palabras sean menos de tres e irme. ¿Como arreglarlo?
countTotalWords() { let str= this.model.FullName_AR; if(!str) { return; } let totalWords= str.split(' ') .filter(function(n: string) { return n != '' }) .length; if(totalWords < 3) { this.wordCountAchieved= false; Swal.fire( 'minimum 3 words', 'input minimum 3 words', 'error' ) } else { this.wordCountAchieved= true; } }html
<input type="text" #nameArabic (change)="countTotalWords()" class="form-control" id="nameAR" [(ngModel)]="model.FullName_AR" name="nameAR" #name="ngModel" required>Intente hacer un cambio y vea qué sucede la segunda vez porque el cambio solo se activa cuando detecta un cambio en el contenido.
necesitas usar el evento de desenfoque en lugar del cambio
<input type="text" #nameArabic (blur)="countTotalWords()">