Dav*_*ave 5 javascript handlebars.js meteor
我有时发现自己向多个模板声明了相同的数据.例如:
Template.auction_page.auctionDurations = function () {
return [ 30, 60, 120 ];
};
Template.auction_editor.auctionDurations = function () {
return [ 30, 60, 120 ];
};
Run Code Online (Sandbox Code Playgroud)
我可以通过使用全局来改善它:
Template.auction_page.auctionDurations = function () {
return global.auctionDurations;
};
Template.auction_editor.auctionDurations = function () {
return global.auctionDurations;
};
Run Code Online (Sandbox Code Playgroud)
但有没有办法完全摆脱声明?换句话说,默认情况下有没有办法将一些全局数据共享到多个模板?
找到了一个很好的解决方案(在Helper的帮助下!).
你的全球:
global = _.extend({}, {
regions: [ "Americas", "Europe", "Asia" ]
}
Run Code Online (Sandbox Code Playgroud)
帮助者:
Handlebars.registerHelper("global", function(name) {
return global[name];
});
Run Code Online (Sandbox Code Playgroud)
现在您的所有模板都可以使用它:
<select>
{{#each global "regions"}}
<option>{{this}}</option>
{{/each}}
</select>
Run Code Online (Sandbox Code Playgroud)