我正在尝试计算邮件的字符数,如果字符数超过160,我正在增加邮件数量,但问题是在我开始输入总短信显示NaN之前,一旦我开始输入它很完美。
第二个问题是,我希望随着消息数量的增加增加短信费用,请参阅下面的代码。
<textarea class="text-input--underbar" placeholder="Enter Message" style="width: 100%; height: 100px;" onkeyup="textCounter(this,'counter',160);" ng-model="message" name="message" id="message" required></textarea>
Remaining Characters : <input disabled maxlength="3" size="3" value="160" id="counter"> / SMS
Total SMS(s) : {{ (message.length - message.length % 160) / 160 + 1 }}
Cost : {{sms_rate}}¢ / SMS
请参阅下面的截图。
答案 0 :(得分:3)
我建议在控制器上编写一个方法来处理你的数学。你得到NaN的原因是因为在开始'消息'是空白的,因此长度为0.我相信你知道,0除以任何东西都会给出错误。
例如你的方法:
function calcTotal() {
var total = (message.length - message.length % 160) / 160 + 1;
return Number.isInteger(total) > 0 ? total : 0;
}
在你的模板中:
Total SMS(s) : {{ calcTotal() }}
通过检查总数是否为数字,您有一个安全网。如果不是,则返回0,这样就不会得到'NaN'。
至于你的增量。您可以在控制器中安装某种计数器,以跟踪已发送的邮件数量,然后您可以使用这些邮件来更改SMS的成本。