我正在使用版本0.4.2构建PhoneGap应用程序。
我在我的代码中使用Handlebars模板,我使用这一行编译:
var template = Handlebars.compile($("#myTemplateName").html());
该应用程序在桌面和移动浏览器上按预期运行,但当我尝试使用PhoneGap Developer App(版本1.7.6)测试移动版本时,该行无效。控制台没有显示任何错误输出,但我认为应用程序必须崩溃,因为应用程序变得无响应,并且在该行代码之后的任何警报都没有显示。
我还试过预编译把手模板并使用这一行获取它们:
var template = Handlebars.templates["myTemplateName"];
我得到相同的回复:该应用在浏览器中运行得非常好,但神秘地停止在移动设备上工作。
为什么会这样?
其他可能有用的信息:
修改:根据要求,以下是一个示例:
<!DOCTYPE html>
<html>
<body id="body">
<!-- Visible Page -->
<div data-role="page" id="home">If this is visible it's not working.</div>
<!-- Handlebars Library -->
<script type="text/javascript" src="/js/handlebars-v4.0.5.js"></script>
<!-- Handlebars Template -->
<script id="template-content" type="text/x-handlebars-template">{{data}}</script>
<!-- jQuery Mobile -->
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<!-- PhoneGap -->
<script type="text/javascript" src="cordova.js"></script>
<script>
$( document ).ready(function() {
var myTemplate = Handlebars.compile($("#template-content").html());
$("#home").html(myTemplate({data:"It's working!"}));
});
</script>
</body>
在浏览器上我看到“它正在工作”,但使用PhoneGap Developer移动应用程序,我看到“如果这是可见的,它就无法正常工作。”
答案 0 :(得分:1)
Phonegap可能会将<script type="text/javascript" src="/js/handlebars-v4.0.5.js"></script>
更改为<script type="text/javascript" src="file://js/handlebars-v4.0.5.js"></script>
将其更改为<script type="text/javascript" src="js/handlebars-v4.0.5.js"></script>
同时确保jQuery正常工作,因为您正在使用CDN,Phonegap可能没有下载它