javascript - 如何使用 HandlebarJS 加载多个模板

标签 javascript jquery templates handlebars.js

我目前正在构建一个小型 Handlebars.js 应用程序。我以前没有任何经验,在我不断学习的过程中,我遇到了一些问题。

我的第一个问题是加载模板。

目前,我需要加载的每个模板都有这样的功能

var populateDocs = function() {
   var srcContent = $( '#docs-template' ).html(),
        contentTemplate = Handlebars.compile( srcContent ),
        htmlContent = contentTemplate( content.getItem( 'docs' ) );

        $( '#docs' ).append( htmlContent );
};

我正在从 content.json 文件中读取模板,因此一旦该文件准备就绪,我就会调用多个函数来填充每个模板。

content.onReady(
    function() {
        populateFooter();
        populateHomework();
        populateDocs();
        populateContact();
        generateTabs();
    }
);

我的问题是。有没有一种方法可以加载所有这些模板,而不必为每个模板调用每个函数?

最佳答案

我认为你能做的最好的事情就是更好地程序化事情。

如果所有 populateXxx() 函数都遵循与 populateDocs() 相同的模式(或者可以这样做),那么您可以编写:

var populate = function(id) {
    $('#'+id).append(Handlebars.compile($('#'+id+'-template').html())(content.getItem(id)));
};

content.onReady(function() {
    populate('footer');
    populate('homework');
    populate('docs');
    populate('contact');
    generateTabs();
});

content.onReady(function() {
    ['footer', 'homework', 'docs', 'contact'].forEach(populate);
    generateTabs();
});

关于javascript - 如何使用 HandlebarJS 加载多个模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44250841/

相关文章:

javascript - 如何在 Node 中创建一个带有变量名的 Mongo 集合?

javascript - 如果其他参数匹配,则对数组中的参数求和

c++ - 通过引用 C++ 中的模板函数传递数组

javascript - 类型 'void' 的参数不可分配给类型 'Function' 的参数

javascript - 如何在 PHP 中从 AJAX jQuery 请求获取数据

javascript - 使用 jquery 解析 RSS 提要的属性

javascript - Jquery动画错误

Android 浏览器 $(window).scroll 不工作

c++ - 递归显式模板实例化是否可能?

templates - 是否可以将变量传递给 mustache 部分