2017-06-13 27 views
2

在Node.JS(模板化)中使用ejs什么是为星型生成这种类型的html最干净和最高效的方法(在打字方面)?在EJS中生成恒星的最简单方法

明星的样子:

   <div class="ratings"> 
        <p class="pull-right"> reviews</p> 
        <p> 
         <span class="glyphicon glyphicon-star"></span> 
         <span class="glyphicon glyphicon-star"></span> 
         <span class="glyphicon glyphicon-star"></span> 
         <span class="glyphicon glyphicon-star"></span> 
         <span class="glyphicon glyphicon-star-empty"></span> 
        </p> 
       </div> 

我试图避免使用一些恶心的语法是这样的:

   <div class="ratings"> 
        <p class="pull-right"> reviews</p> 
        <p> 
          <% for (i = 0; i < 5; i++) { %> 
            <% if (i < (star_rating - 0.5)) { %> 
            <span class="glyphicon glyphicon-star"></span> 
            <% } else { %> 
            <span class="glyphicon glyphicon-star-empty"></span> 
            <% } %> 
          <% } %> 
        </p> 
       </div> 

回答

0

没什么可以做的for循环,但它里面的代码可减少4行使用ternary/conditional运营商:

<div class="ratings"> 
    <p class="pull-right"> reviews</p> 
    <p> 
     <% for (var i = 0; i < 5; i++) { %> 
      <span class="glyphicon glyphicon-star<%= (i < star_rating - 0.5)? '' : '-empty'%>"></span> 
     <% } %> 
    </p> 
</div>