繁体   English   中英

Apache Velocity并添加JavaScript

[英]Apache Velocity and adding JavaScript

请原谅我,因为我以前从未使用过Apache Velocity,但我必须弄清楚这一点!

我正在为产品使用Adobe推荐模板,现在正在向其中添加星级评分系统,如下图所示:

星级评分图片

但是,如您所见,我添加的逻辑(在JS中)仅在第一次执行。 并且显然不在循环中运行,因为它处于“速度”状态。

我对社区的问题是; 我该如何进行这项工作?

我已经尝试了一天,但无济于事,因此不胜感激。

请参见下面的代码! (谢谢!)

[#foreach循环是速度,脚本标签之间的所有内容都是我的附加代码]

<div class="line">
<h2>More for You</h2>

#set($count=1)

      #foreach($e in $entities)  
        #if($e.id != "" && $count < $entities.size() && $count <=18) 
          <li>
          <script type="text/javascript">

              var myString = $e.rating;
                if (myString >= 5) { myString = 5;} 

              var myRegexp2 = /\d(?!.*\d)/;
              var match2 = myRegexp2.exec(myString);
              var starIMG = "<img src='http://kirklands.ugc.bazaarvoice.com/3768-en_us/" + match + "_" + match2 + "/5/rating.gif' alt='' />";

              var myRegexp3 = /\d/;
              var match = myRegexp3.exec(myString);

                function myFunction() {
        return(match);
            }

          </script>
            <a class="productBlock" onclick="var s = s_gi(s_account);
            s.linkTrackVars='events,eVar21';
            s.linkTrackEvents='event16';
            s.events='event16';
            s.eVar21='';
            s.tl(this,'o','Product Detail Cross-Sell');" href="$e.pageUrl?icid=hpFS ">
              <img title="$e.name" alt="$e.name" src="$e.thumbnailUrl">
              <h3>$e.name</h3>
              <div id="starRating"><script>document.getElementById("starRating").innerHTML = 
              starIMG;</script></div>
              <p>$$e.value</p>
            </a>

          </li>
        #set($count = $count + 1)
      #end 
    #end
  </ul>
</div>
<div class="scroolBtn btnRight"><span class="btn" id="scrool-forward"></span></div>
</div>
jQuery(function(){jQuery('#scrool')。scrollbox({direction:'h',switchItems:3,distance:450,autoPlay:false}); jQuery('#scrool-backward')。click(function (){jQuery('#scrool')。trigger('backward');}); jQuery('#scrool-forward')。click(function(){jQuery('#scrool')。trigger('forward' );});});

我已经好几年没有使用Velocity模板脚本了,但是疯狂的猜测是一个不可避免的问题。 速度模板中包含的所有内容实际上都是由Velocity引擎运行的,必须转义$ variable文字。

http://velocity.apache.org/engine/devel/user-guide.html#escapingvalidvtlreferences

编辑不等待,您的意思是您想在服务器端运行javascript代码,每个foreach项目步骤都应评估javascript代码?

暂无
暂无

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

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