2016-04-22 2 views
-1

Я хочу определить два или более переменных в моем javascript-коде, но когда я определяю второй, первый становится недействительным. Я искал эту проблему, но я не понимаю почему , Может ли кто-нибудь сказать мне, как с этим бороться? Вот мой код Javascript (Он используется для преобразования JSON в HTML таблицу):Не могу определить два var в javascript

<script type="text/javascript"> 
     var v_first = {{ pass_kegg|safe }} 
     var v_seconde = {{ pass_tmp|safe }} 

     function buildHtmlTable(myList) { 
      //Builds the HTML Table out of myList json data from Ivy restful service. 
     } 

     function addAllColumnHeaders(myList) 
     { 
      //Adds a header row to the table and returns the set of columns.Need to do union of keys from all records as some records may not containall records 
     } 
    </script> 

Когда я определяю только одну переменную, все работает отлично. Но когда я штрафую вторую переменную v_second, первая переменная v_first становится недействительной.

+1

Заявления в конце с запятой. –

+1

В части 'var v_first = {{pass_kegg | safe}}', для чего нужны двойные фигурные скобки? Они заменяются на стороне сервера? Если нет, удалите их, чтобы сделать «var v_first = pass_kegg | safe» и «var v_seconde = pass_tmp | safe» и посмотреть, делает ли это то, что вы хотите. –

+0

@ LukePark Сделайте это ответом, и я проголосую за него – nhouser9

ответ

1

Кажется, вы должны использовать tojson() filter для динамической генерации JavaScript, т.е.

var v_first = {{ pass_kegg|tojson|safe }}, 
    v_seconde = {{ pass_tmp|tojson|safe }}; 

Это хорошая практика, чтобы прекратить выражения с помощью двоеточия, но это определенно не требуется. См. What are the rules for JavaScript's automatic semicolon insertion (ASI)?

+0

Благодарим вас за подробный ответ !!! –

-1

Попробуйте

 var v_first = { pass_kegg|safe }; 
    var v_seconde = {pass_tmp|safe }; 

вместо этого

 var v_first = {{ pass_kegg|safe }} 
    var v_seconde = {{ pass_tmp|safe }} 

это может работать не 100% на нем

+1

Спасибо за ваш ответ! –

+0

Это не стандартный синтаксис Jinja. – davidism

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