繁体   English   中英

为什么这个 Angular 6 onclick 功能不能正常工作?

[英]Why does this Angular 6 onclick function not working properly?

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

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

 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! 知道出了什么问题

当 startDay 小于 endDay 时(正确输出)

当 endDay 小于 startDay 时(错误输出)

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM