2017-01-10 41 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

我記得嘗試類似的東西,問題是我不得不在窗口或文檔對象上創建變量。