繁体   English   中英

如何将变量传递到javascript模板中?

[英]How to pass variable into javascript template?

我试图学习js模板并编写了以下页面:

<!DOCTYPE html>
 <html>
 <head>
   <meta charset="utf-8">
   <script src="http://code.jquery.com/jquery-latest.js"></script>
   <script src="http://cdnjs.cloudflare.com/ajax/libs/lodash.js/0.9.0/lodash.js"></script>

 </head>
 <body>

 <div id="helloDiv">init text</div>


<script type="text/template" id="test">
<% hello world %>!
</script>
<script>


$('#helloDiv').html( 
  _.template( $('#test').html().trim(),world : 'EARTH') 
);

</script>


</body>
</html>

预期的行为:我想向hello EARTH!

但是我看到init text

我怎么了

这里有很多错误。 在发布问题之前,您应该学会查看JavaScript控制台并进行一些调试,因为存在太多错误,很难分辨是什么原因导致了您的特定错误。

  1. 没有“ JavaScript模板”之类的东西。 这是一个下划线模板(或在这种情况下,lodash),这是一个图书馆,而不是在所有内置到JavaScript的东西。

  2. 您使用的是<% %>错误。 如果要为“ world”变量内插“ EARTH”的值,则需要以下内容:

     hello <%= world %>! 

    实际上,使用<% hello world %> ,您要告诉模板调用一个名为hello的函数以及一个名为world的变量。 即使下面的#3已修复,您仍然会遇到错误。

  3. 最后,最重要的是,您有一个非常明显的语法错误。 您在world: 'EARTH'缺少{} world: 'EARTH' 您的脚本块甚至都不会解析,并且JavaScript控制台上应该有一个非常明显的错误,告诉您此语法错误发生的确切行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM