2017-05-29 7 views
0

現在、私は小さなHandlebars.jsアプリケーションを構築中です。私は以前の経験がなく、私が進んでいくうちに学んでいるように、私はいくつかの問題に取り組んできました。HandlebarJSで複数のテンプレートを読み込む方法

私の最初の問題はテンプレートを読み込むことです。

は現在、私は、このファイルの準備ができたら、私は各テンプレートを移入するために複数の機能を呼び出すようcontent.jsonファイルからテンプレートを読んでいます

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

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

をロードする必要があるすべての単一のテンプレートに対して、このような機能を持っています。

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

私の質問はです。テンプレートごとに各関数を呼び出す必要なく、これらのテンプレートをすべて読み込む方法はありますか?

答えて

1

私はむしろあなたができることは、手続きをより良くすることだと思います。

すべて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(); 
}); 
関連する問題