我创建了一个循环,用于从数据库中获取项目总数。我正在使用EJS,这是下面显示的代码。
<h2>Summary</h2>
<% if(typeof items.cart!=="undefined"){
var amount = 0; %>
<% items.cart.forEach(function(file) {
amount +=parseInt(file.price); %>
<ul class="summary-table" id="summary-table">
<li><span>subtotal:</span> <span><%= amount %></span></li>
<li><span>delivery:</span> <span>Free</span></li>
<li><span>discount:</span> <span></span></li>
<li><span>total:</span> <span><%= amount %></span></li>
</ul>
<% }); %>
<% } %>
我得到了物品的总数。但是,摘要会在价格加到总额中时多次打印。
防止它们出现的任何提示
答案 0 :(得分:1)
您的<ul>
标记似乎位于forEach循环中,因此将为items.cart
的每个元素进行打印。
我建议您计算除模板之外的其他位置的总值,并且仅将模板用于渲染。
我不熟悉EJS,但是您可以尝试以下方法:
<h2>Summary</h2>
<% if (typeof items.cart !== "undefined") {
var amount = 0; %>
<% items.cart.forEach(function (file) {
amount += parseInt(file.price); }); %>
<ul class="summary-table" id="summary-table">
<li><span>subtotal:</span> <span><%= amount %></span></li>
<li><span>delivery:</span> <span>Free</span></li>
<li><span>discount:</span> <span></span></li>
<li><span>total:</span> <span><%= amount %></span></li>
</ul>
<% } %>