我正在使用HTML,JavaScript和jQuery Mobile制作一种图片库。我正在关注JQM演示:http://jquerymobile.com/demos/1.3.0-beta.1/docs/demos/swipe/swipe-page.html 制作图库,但它为每张图片使用完全不同的HTML页面。我的计划是画廊是动态的,所以我没有一定数量的页面或一组图片名称等,我想我可能会使用Mustache制作图片模板,并动态创建页面。以下是代码的基本布局:
在index.html
<!DOCTYPE html>
<html>
<head>
...
<script src="mustache-0.7.0-min.js" type="text/javascript"></script>
<script src="mobile.js" type="text/javascript"></script>
<script id="test_template" type="text/html">
<h1>{{firstName}} {{lastName}}</h1>
<p>{{tempText}}</p>
</script>
...
</head>
...
然后在mobile.js
function showPerson()
{
var person =
{
firstName: "Feaf",
lastName: "McFeaf",
tempText: "Hello Feaf"
};
var personTemplate = document.getElementById("test_template").innerHTML;
var html = Mustache.to_html(x, person);
}
所以它就像你能得到的一样基本。但是,当我在本地服务器上运行Web应用程序(在Chrome中),并且我单步执行此功能时,我在Mustache.to_html
行收到错误,说
Uncaught TypeError: Cannot call method 'to_html' of undefined
我是网络开发的新手,也是Mustache的新手,所以我不知道是什么导致了这个错误。我尝试过调用其他Mustache方法,比如render
,但会出现同样的错误。 <script src=...>
是不是足以让mobile.js可以访问Mustache库?有人对我可能做错了什么有任何提示吗?
感谢您提供任何信息,并告诉我应该添加的任何其他信息。
编辑:
糟糕!忘了在脚本部分包含我有小胡子的事实,我编辑以反映这个事实。为了清楚起见,我已经(并且一直有)胡子包括在内!
另外,我尝试了@Zorayr使用console.log(Mustache)
的建议,并声称Mustache未定义,即使我正在导入它,如上所述。为什么会这样?
答案 0 :(得分:0)
作为问题的解决方案,我最终下载并使用了Handlebars。在我看来,已经存在于项目中的Mustache库和我添加的新库中存在一些冲突。这并不能解释为什么Mustache将被定义,但这是我的解决方法。