正如标题所示,我正在寻找使用Ember.js使用上述助手创建函数的不同之处。
示例:
Ember.Handlebars.helper(‘大写_h’,函数(值){返回value.toUpperCase();});
通过使用3,我发现:
那么,在使用上还有其他区别吗?这是唯一的区别吗?
另外,在什么情况下建议使用哪种创建助手的方法?
发布于 2014-04-25 09:28:08
Ember.Handlebars.helper和Ember.Handlebars.registerBoundHelper扩展了registerHelper工具栏方法,并提供了特定于EmberJS的特性,例如数据绑定或视图创建。
registerBoundHelper创建一个绑定助手。
Bound helpers behave similarly to regular handlebars helpers, with the added ability to re-render when the underlying data changes.成员使用Ember.Handlebars (我认为,不建议您直接访问工具栏实例)提供工具栏实例,它允许您使用函数参数接受该格式的registerHelper方法编写特定的工具栏方法:
Ember.Handlebars.helper('myHelperName', function(property, options) {
});如果您使用registerHelper方法定义了您的助手,那么您的助手将负责观察数据更改,并在必要时重新呈现其数据。
发布于 2014-07-01 12:53:22
如果基础数据发生变化,Ember.Handlebars.registerBoundHelper将重新呈现.
当基础数据发生变化时,Ember.Handlebars.registerHelper不会重新呈现.
Ember.Handlebars.helper是Ember.Handlebars.registerBoundHelper或Ember.Handlebars.registerHelper的别名,这取决于参数中传递的内容。如果您试图创建一个自定义视图助手,Ember.Handlebars.helper将在内部调用Ember.Handlebars.registerHelper,否则它将调用Ember.Handlebars.registerBoundHelper。在您的示例(以及大多数情况下都会用到这种情况)中,您可以将“helper”与“Registerer1244 helper”视为相同的:
Ember.Handlebars.helper('capitalize_h', function(value) {
return value.toUpperCase();
});...is和.
Ember.Handlebars.registerBoundHelper('capitalize_h', function(value) {
return value.toUpperCase();
}); https://stackoverflow.com/questions/23286873
复制相似问题