我目前正在构建一个小型 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/