javascript - handlebars预编译模板报错
黄舟
黄舟 2017-04-10 14:40:28
[JavaScript讨论组]

我用的是grunt-contrib-handlebars工具来做的编译。
具体步骤参考:http://danburzo.ro/grunt/chapters/handlebars/

编译文件成功了,页面引入:



如果是1.3版本的runtime js 就不会报错。但是,1.8以上的(以下的我没看)就会报错,错误如下:
Uncaught Error: Unknown template object: function
指向代码:

if (!templateSpec || !templateSpec.main) {
   throw new Exception('Unknown template object: ' + typeof templateSpec);
}

差异在于1.3没做AMD或者CMD的模块包裹处理,但是1.8以上的做了该处理。
不知道如何解决此问题。

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
怪我咯

这个问题和旧版本生成的缓存有关,不过我不知道你在什么样的项目里使用 Handlebars,所以很难给出具体的解决步骤,你能说一下你的项目环境吗?

另外,你可以试一下脱离当前项目环境,也不用 grunt,只用 handlebars 做一个小的例子(可以用你出现问题的模版代码)看看能不能解决这个错误。不用 grunt 的方法请见:http://handlebarsjs.com/precompilation.html

更新:刚确认了一下,grunt-contrib-handlebars 目前只支持 ~1.3.0 版本的 handlebars 编译的模版,因此你换了更高版本的 runtime 是不行的。如果坚持要用 grunt,那就把 runtime 降回来,否则就不要用 grunt-contrib-handlebars 插件了,你可以编写 task 直接使用高版本的 handlebars 来编译模版。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号