为什么Angular 6 onclick功能无法正常工作?

问题描述 投票:1回答:1

因此,我构建了一个快速的Angular 6应用程序,以帮助估算用户想要计算的期间的开始和结束日期的帐单金额。 (例如,1和5将从1日到5日返还账单总额)。

无论如何,我有一个按钮在单击时运行以下功能(this.bills $是我使用的json数据)但是当我输入高于endDay的startDay时它不起作用。

  estimateBills() {
    this.estimateText = 0;


    console.log('00: startDay is: ' + this.startDay + ' and, endDay is: ' + this.endDay);


    if (this.startDay < this.endDay) {
      console.log('1: startDay is: ' + this.startDay + ' and, endDay is: ' + this.endDay);
      for (var i = 0; i < this.bills$.length; i++) {
        if (this.startDay <= this.bills$[i].DueDate && this.endDay >= this.bills$[i].DueDate) {
          console.log('Bill DueDate is: ' + this.bills$[i].DueDate + ' and Amount is ' + this.bills$[i].Amount);
          this.estimateText = +this.estimateText + this.bills$[i].Amount;
        }
      }
    }
    else if (this.startDay > this.endDay) {
      console.log('2: startDay is: ' + this.startDay + ' and, endDay is: ' + this.endDay);
      for (var i = 0; i < this.bills$.length; i++) {
        console.log('looping');
        if (this.startDay <= this.bills$[i].DueDate || this.endDay >= this.bills$[i].DueDate) {
          console.log('Bill DueDate is: ' + this.bills$[i].DueDate + ' and Amount is ' + this.bills$[i].Amount);
          this.estimateText = +this.estimateText + this.bills$[i].Amount;
        }
      }
    }
    else {
      this.estimateText = 1;
    }


  }

以下是运行该函数时获得的一些示例。由于某种原因,它没有意识到startDay高于endDay!出了什么问题

When startDay is smaller than endDay (correct output)

When endDay is smaller than startDay (incorrect output)

javascript binding angular6 buttonclick
1个回答
1
投票

最有可能的原因是this.startDaythis.endDay都是字符串,因此"28" < "4"比较是true(在这种情况下比较第一个字符'2'和'4')。

显式转换为数字可能会有所帮助,即Number(this.startDay) < Number(this.endDay)

© www.soinside.com 2019 - 2024. All rights reserved.