Javascript 车把辅助功能不工作
我在应用程序中使用Javascript 车把辅助功能不工作,javascript,requirejs,require-handlebars,Javascript,Requirejs,Require Handlebars,我在应用程序中使用handlebar所有模板及其相应的helper函数在.html文件本身中编写。模板编译发生在我的主干视图中,这意味着它发生在.js文件中 在实现require.js之前,所有我的视图实例都是全局的,这就是模板编译工作正常的原因,但现在我使用require.js将我的视图代码重新分解为模块,因此,当模板编译时出现异常(缺少帮助程序:“setIndex”)时,我的模板无法工作。我就是这样写的 index.html: //loading library <script
handlebar
所有模板及其相应的helper
函数在.html
文件本身中编写。模板编译发生在我的主干
视图中,这意味着它发生在.js
文件中
在实现require.js
之前,所有我的视图实例都是全局的,这就是模板编译工作正常的原因,但现在我使用require.js
将我的视图代码重新分解为模块,因此,当模板编译时出现异常(缺少帮助程序:“setIndex”
)时,我的模板无法工作。我就是这样写的
index.html:
//loading library
<script type="text/javascript" src="lib/js/handlebars-v1.1.2.js"></script>
//helper function
<script>
Handlebars.registerHelper('setIndex', function(value){this.index = Number(value);});
</script>
//template
<script id="ftpBodyInitialTpl" type="text/x-handlebars-template">
{{#each bizSteps}}
{{setIndex @index}}
{{/each}}
</script>
我不知道,为什么它会显示缺少助手:“setIndex”
有人能帮我吗
谢谢。看起来您正在加载把手,无需满足以下要求:
<script type="text/javascript" src="lib/js/handlebars-v1.1.2.js"></script>
define(["handlebars"],function(Handlebars){
您没有提到模块加载错误消息,所以我假设您正确配置了RequireJS来加载它,并且RequireJS确实加载了它。问题是,您最终得到了两个把手实例。在没有RequireJS的情况下加载的实例将获得setIndex
帮助程序。加载了RequireJS的那个没有。此问题有多种解决方案:
把手
符号。您没有在模块所需的模块中列出把手
脚本
标记,助手必须成为AMD模块handlebar fake.js
文件将是:
define(function () {
return Handlebars;
});
因此,RequireJS最终会得到与加载了
脚本的车把相同的实例。您是否缺少index.html中的第一个关闭
标记,或者只是您发布的示例?我在助手函数周围添加了脚本标记。
define(function () {
return Handlebars;
});