2013-10-03 4 views
-1

Когда я запускаю свой код, он дает мне ошибку «ReferenceError: MyVariable не определен» на var comm_Id, я пытаюсь получить идентификатор страницы, а затем сгенерировать URL-адрес для вызова rest APIReferenceError: MyVariable не определен

Этот "$ {community.id}" получает идентификатор страницы динамически.

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$(function() { 
    var comm_Id = ${community.id} //MyVariable being the supposed ID of the page 
    var cat_id = ${coreNode.ancestors[0].id}; //Category ID of the boards parent 
    var restUrl = "/"+comm_Id+"/restapi/vc/categories/id/"+cat_id; 

    $.ajax({ 
     type: "GET", 
     url: restUrl, 
     contentType: "text/xml; charset=utf-8", 
     data: "DATA", 
     success: function (response) { 

      var index = 0; 
      var fltBoardID = ""; 
      var boardId=""; 

      var categoryNode = $(response).find("category > title"); 
      var categoryTitle = $(categoryNode).text(); 
      $("#category-title").html("<p>More in the "+categoryTitle+" category</p>"); 

      $(response).find("board > id").each(function() { 
       boardId = $(this).text(); 

       var boardTitle = $(response).find("board > title:eq("+index+")"); 
       var otherBoardsList = $(boardTitle).text(); 
       $("#Other-Boards-List").append("<ul><li><a href='"+"/t5/board/bd-p/"+boardId+"'>"+otherBoardsList+"</a></li></ul>"); 
       index++; 
      }); 
     }, 
     error: function (response) { 
      $('#Other-Boards-List').html('Failed to load the content'); 
     } 
    }); 
}); 
</script> 

<div id="Other-Boards-List"> 
    <div id="category-title"></div> 
    <p style="font-size:18px;">Browse other boards</p>  
</div> 
+3

Из какой библиотеки этот синтаксис? '$ {Community.id}'? Вероятно, следует пометить его – CodingIntrigue

+0

Это, вероятно, язык выражений из java JSP. – vdubus

+0

Это также верно PHP, я думаю (внутри строк с двойными кавычками или HEREDOC). –

ответ

1

Предполагая ${community.id} заменяется последовательностью символов перед выполнением сценария, вы должны значения, так что оно интерпретируется как строка.

var comm_Id = "${community.id}"; 
//should result in: 
var comm_Id = "MyVariable"; 

без кавычек, интерпретатор будет искать переменную под названием MyVariable.

Как отметил @Michael, вы также должны указать cat_id (хотя это и не обязательно, если это целочисленное значение без начальных нулей).

p.s. Вместо двойных кавычек можно использовать одинарные кавычки - единственное различие заключается в экранировании символа разделителя строк (ref).

+2

Хороший звонок. Такая же проблема существует для 'cat_id', предполагая, что она должна быть строкой. Если это номер, все будет в порядке, как есть. Но поскольку 'cat_id' используется только там, где он соединен с другой строкой, может также процитировать его и безопасно играть. –

Смежные вопросы