我试图了解使用Meteor Template助手与使用Handlebars Template助手的差异,利弊。
例如:
Template.users_insert.is_state_selected = function(code){};
与
Handlebars.registerHelper('is_state_selected', function(code){});
他们似乎做了同样的事情,除了Handelbars帮助者对我们的覆盖范围比Temple.my_template.helper_function
更宽。
我最关心的不仅是差异和利弊,还有可能导致另一个人没有的副作用。
答案 0 :(得分:3)
这里有一件事是错过的。
使用
注册的把手助手Handlebars.registerHelper('helper_name', function(){});
适用于整个项目。
在流星中
Template.my_template.helpers({});
或
Template.my_template.my_helper = function(){};
仅适用于当前模板:例如my_template
答案 1 :(得分:1)
这就是我如何区分这两种机制,不能保证正确性;)
Meteor模板方法用于数据绑定,这就是为什么它们具有本地范围。每个模板都需要应用程序数据的子集,可能以各种形式表示。这个子集是通过模板方法定义的。
Handlebars本身就是模板框架,因此帮助程序控制应用程序如何呈现从Meteor“数据层”接收的数据。您可能需要一些特殊类型的枚举,需要一种方法将数据值“映射”到路径等...但您只使用“数据层”提供的数据而不扩展它。