2015-04-07 1 views
1

Я разрабатываю шаблон, который будет включен в более крупный шаблон, и по какой-то причине шаблон не принимает никаких аргументов в Javascript.Bottlepy - Как получить доступ к аргументам на бутылку {{var}} из javascript?

Все в порядке, если аргумент доступен из html. Вот пример:

test.tpl: 

<p>from html: {{arg}}</p> 
<script type="text/javascript"> 
window.alert("from script "+{{arg}}); 
</script> 

Из другого шаблона, я включаю test.tpl и передать его со значением агд:

main.tpl: 

% include('test.tpl', arg='some value') 

Конечным результатом является то, что аргумент в HTML отображается в порядке:

from html: some value 

Но бдительный окна дает что-то странное:

[object HTMLLIElement] 

Что происходит?

+0

Я думаю, вам нужно привести литерал JS. но '' abc "+ some value' должно быть синтаксической ошибкой ... – dandavis

ответ

1

Как @dandavis отметил в комментарии, надлежащим образом ссылаться на аргумент в JavaScript, чтобы поместить его в цитате:

test.tpl: 

<p>from html: {{arg}}</p> 
<script type="text/javascript"> 
window.alert("from script "+"{{arg}}"); 
</script> 

Выход:

from script some value 

Без кавычку , то, что JavaScript фактически видит, является строкой, за которой следует переменная с именем некоторое значение, которое не может быть объединено строковым литералом. Вот как выглядит мой оригинальный код в браузере:

window.alert("from script " + some value); 

, что не так.