得到"无法调用方法..未定义的“;JavaScript和Mustache出现错误

Getting "cannot call method ... of undefined" error with JavaScript and Mustache

本文关键字:JavaScript Mustache 错误 未定义 quot 方法 调用 得到      更新时间:2023-09-26

我正在使用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);
}

所以这是最基本的。然而,当我在本地服务器(Chrome)上运行web应用程序,并逐步完成此功能时,我在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是未定义的,尽管我如上所述正在导入它。为什么会这样?

作为问题的解决方案,我最终下载并使用了Handlebars。在我看来,已经在项目中的Mustache库和我添加的新库之间存在一些冲突。这并不能真正解释为什么Mustache会被定义,但这是我的解决方法。