如何防止bsValueChange在角度页面加载时触发?

时间:2019-01-18 06:03:57

标签: angular ngx-bootstrap

我一直在使用ngx-bootstrap的datepicker监听onchange事件,以便每当用户从输入更改日期时都可以获取数据。

一切正常,除了bsValueChange最初在页面加载时触发并返回Unhandled rejection SequelizeDatabaseError: invalid input syntax for type date: "Invalid Date"之外。

这是我的日期选择器代码块

<input class="form-control" #drp="bsDaterangepicker" bsDaterangepicker [(ngModel)]="bsRangeValue" [bsConfig]="{ rangeInputFormat: 'MM/DD/YYYY' }"
  (bsValueChange)="onValueChange($event)">

我也研究了this的github问题,但这对我也不起作用,因为ngModelChange不再起作用。

我只希望bsValueChange在整个页面加载后触发一次。

4 个答案:

答案 0 :(得分:1)

使用onHidden事件代替bsvalueChange

答案 1 :(得分:0)

正在加载页面时,将调用onValueChange($event)方法。我发现没有办法阻止这种情况,相反,您可以尝试这样的事情。

我也面临着同样的问题。最后,将其修复。 在方法外声明一个数字变量。

counter =0;
OnChangeValue($event){
     this.counter = this.counter+1;
     if(this.counter>2 && event.length!=0){
      -- Proceed with your code --
}

快乐编码。

答案 2 :(得分:0)

我通过设置一个组件handleDatepickerEvents标志来解决此问题,该标志以false开始,并在ngAfterViewInit()中设置为true。

handleDatepickerEvents为false时,onValueChange()函数只需忽略更改。

答案 3 :(得分:0)

你说 ngModelChange 没有解决你的问题。我在 Angular 9 和 ngx-bootstrap 5.6.2 上遇到了同样的问题,从 (bsValueChange)="onDataFinalValueChange($event)"(ngModelChange)="onDataFinalValueChange($event)"