2017-01-10 40 views
1

有一个基于我的页面引导的工件滑块,我定义了一个全局变量(在java脚本中)来统计从服务器返回的工件数量,以填充两个不同的div类。但是,当我使用jQuery的模板,我的变量(如果我的情况),我得到以下不能在我的jQuery模板中使用全局变量

类型错误错误:k.nodes未定义

,当我尝试登录我的变量(” artifactCounterV“)中的console.log(),打印变量的值之后我得到这个错误

类型错误:不能转换到基本类型

这是我homePage.jsp

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 
<title>home page</title> 


<script language="javascript" type="text/javascript"> 
    var restUrl = "<c:url value = '/rest/core/goods/products/book' />"; 
    var restUrlOrderItem = "<c:url value = '/rest/order/orderItem/front/addToBasket/' />"; 
    var artifactCounterV = 1; 
    $(function() { 
     fillTable(); 
    }); 


    function artifactCounter() 
    { 
     return artifactCounterV++; 
    } 
    function fillTable() { 
     $('#entityBody' + ' :not(script)').remove(); 
     $.getJSON(restUrl + "/front/list/getAll", function(entities) { 
      if (entities.entityList) 
       $('#GridRowTemplate').tmpl(entities.entityList).prependTo(
         '#entityBody'); 
      else { 
       $('#GridRowTemplate').tmpl(entities).prependTo("#entityBody"); 
      } 
     }); 
    } 

    function addToShoppingCart(productId) { 
     $.ajax({ 
      type : "POST", 
      url : restUrlOrderItem + productId, 
      success : function(res) { 
       if (res) 
        return res.id 
      } 
     }); 

    } 
    function goToBasketPage(){ 
     window.location="<c:url value ='/View/frontEnd/cart/Index.jsp'/>"; 
    } 
</script> 
</head> 
<body> 
    <span id="confirm"></span> 
    <%@ include file="Header.jsp"%> 
    <%@ include file="TopMenu.jsp"%> 
    <%@ include file="Commercial.jsp"%> 
</body> 
</html> 

,这里是我的artifactSlider.jsp

artifactSlider.jsp是icluded内commercial.jsp并且在商业页面,它的纯HTML没有Java脚本代码。

<!------------- product-slider -----------> 
<div id="carousel-example" class="carousel slide hidden-xs " 
      data-ride="carousel"> 
      <!-- Wrapper for slides --> 
      <div class="carousel-inner"> 
        <div id="entityBody" class="entityBody"> 
         <script id="GridRowTemplate" type="text/html"> 
         ${console.log(artifactCounterV)} 
         {{if artifactCounterV == 1 }} 
          <div class="item active"> 
          <div class="row"> 
         {{/if}} 

         {{if artifactCounterV==6}} 
          <div class="item"> 
          <div class="row"> 
         {{/if}} 
           <div class="col-sm-2 item-holder"> 
            <div class="col-item"> 
             <div class="photo"> 
              <img 
               src="<c:url value='/rest/attachment/front/getFile/' />${pictureCode}" 
               class="img-responsive" /> 
             </div> 
             <div class="info"> 
              <div class="row"> 
               <div class="price col-md-12"> 
                <h5>${name}</h5> 
                <h5 class="price-text-color separator"> 
                 <span>price: </span> ${price} $ 
                </h5> 
               </div> 
              </div> 
              <div class="separator"> 
               <p class="btn btn-default col-md-12"> 
                <i class="fa fa-shopping-cart"></i> <span href="" 
                 class="hidden-sm" onclick="addToShoppingCart(${id})">add to basket</span> 
               </p> 
               <p class="btn btn-default col-md-12"> 
                <i class="fa fa-list"></i> <a class="hidden-sm" href="">more</a> <span style="display: none">${artifactCounter()}</span> 
               </p> 
              </div> 
              <div class="clearfix"></div> 
             </div> 
            </div> 
           </div> 
         {{if artifactCounterV==6 || (artifactCounterV>6 && artifactCounterV<=12) }} 
          </div> 
          </div> 
         {{/if}} 
        </script> 
        </div> 
       </div> 
      </div> 
    <!------------- product-slider -----------> 
+0

是你的JS代码包含在DOM呈现之前还是之后? – Cruiser

+0

这是我们可以调试的地方吗? –

+0

dear @Cruiser我编辑了我的代码,就像它在我的示例 –

回答

0

我记得尝试类似的东西,问题是我不得不在窗口或文档对象上创建变量。