我正在开发一个模板,该模板将包含在更大的模板中,由于某种原因,该模板不接受Javascript中的任何参数。

如果从html访问参数,一切都很好。这是一个例子:

test.tpl:

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


从另一个模板中,我包括test.tpl并将其传递给arg值:

main.tpl:

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


最终结果是,html中的参数显示良好:

from html: some value


但是Windows警报给了一些奇怪的东西:

[object HTMLLIElement]


到底是怎么回事?

最佳答案

正如@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);


这是错误的。

关于javascript - Bottlepy-如何从Javascript访问瓶子参数{{var}}?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29501534/

10-14 17:47
查看更多