0
votes

Changer l'événement ne se fait pas être tiré en angulaire 6

hi je suis une méthode d'appel de la méthode onChange, mais pour une entrée de calendrier, il ne s'agit pas d'appliquer.Below est le code. [(Modifier) ​​= "MakeDirty ()"]. Il fonctionne pour la description Textbox mais ne fonctionne pas pour la rupture de la rupture de jour .

    <div class="form-group mb-10">
      <label class="formLabel">Description</label>
      <input type="text" (change)="makeDirty()" class="form-control bg-grey" [(ngModel)]='description' [ngModelOptions]="{standalone:true}">
    </div>

    <div class="form-group mb-10">
        <label class="formLabel">Period</label>
        <input type="text" (change)="makeDirty()" placeholder="select start date and end date" class="form-control bg-grey" #dp="bsDaterangepicker"
          bsDaterangepicker [(ngModel)]="bsRangeValue" [placement]="'top'" [outsideClick]="false" [bsConfig]="{  showWeekNumbers:false,containerClass: 'theme-dark-blue',rangeInputFormat: 'DD/MM/YYYY' }"
          formControlName="Period">
        <span class="glyphicon glyphicon-calendar glyicon" (click)="dp.toggle()" [attr.aria-expanded]="dp.isOpen"
          value="Toggle" style="top:36px"></span>
        <div class="alert  alert-danger" *ngIf="formGroup.get('Period').dirty && formGroup.get('Period').errors && formGroup.get('Period').errors.ageRange ">
          Date range selected is invalid
        </div>
      </div>


1 commentaires

S'il vous plaît aidez-moi je suis nouveau à angulaire.


4 Réponses :


5
votes

Utilisez (bsvaluechange) pour DatePicker. Voir Documents

https://valor-software.com/ngx- Bootstrap / # / DatePicker # Valeur-Change-Event


4 commentaires

Avant de faire des modifications, il appelle la méthode MakeDirty () sur la charge de la page


@ user9287106 Est-ce que makedirty () fonction est appelé lorsque vous cliquez sur le calendrier pour la première fois?


Non, à la page charge, il est appelé mais je le veux sur le changement


@ user9287106 peut essayer OnShown () Fonction au lieu de Modifier Fonction?



0
votes

Si vous utilisez NGModel, vous pouvez utiliser (NGModelChange).


2 commentaires

Oui, j'utilise Ngmodel, lorsque j'utilise NGModelChange, il appelle la méthode makeDirty () sur la charge avant de modifier les modifications.


Vous pouvez utiliser quelque chose comme ceci makedirty () {if (bsrangevalue) {console.log (appelé ');}}



1
votes

Utiliser (entrée) au lieu de (changer).


2 commentaires

J'ai essayé mais ne pas travailler à ne pas appeler la méthode même après le changement


Des erreurs sur la console de développeur? Je ne vois pas la balise de fermeture de votre élément d'entrée en haut morceau ci-dessus. Vous utilisez également NGModel et FormControlName ensemble?



0
votes

Essayez Setter ES6 fort>

La syntaxe SET lie une propriété d'objet à une fonction à appeler quand il y a une tentative de définir cette propriété. P> blockQquote>

intermédiaire fonction de la fonction PLACE MakeDirty Méthode Il sera appelé chaque fois que la valeur d'entrée change p>

composant.ts strong> p>

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
  set myDateValue(value) {
    this.makeDirty();
  };
  ngOnInit() {
    // this.myDateValue = new Date();
  }

  onDateChange(newDate: Date) {
    console.log(newDate);
  }

  makeDirty() {
    console.log('Called');
  }
}


0 commentaires