gpt4 book ai didi

javascript - 如何防止在 EJS 中多次打印?

转载 作者:行者123 更新时间:2023-11-30 19:47:44 25 4
gpt4 key购买 nike

我创建了一个循环来从数据库中获取项目总数。我正在使用 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>

<% }); %>
<% } %>

我得到了元素的总数。但是Summary会在价格加总金额时打印多次。 enter image description here

防止它们发生的任何技巧

最佳答案

你的 <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>
<% } %>

关于javascript - 如何防止在 EJS 中多次打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54798655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com