Javascript 与x27之间的差异;助手'';RegisterHelper';和';RegisterBoundHelper';?
正如标题所示,我正在寻找上述helper创建函数与Ember.js在使用上的差异Javascript 与x27之间的差异;助手'';RegisterHelper';和';RegisterBoundHelper';?,javascript,ember.js,handlebars.js,Javascript,Ember.js,Handlebars.js,正如标题所示,我正在寻找上述helper创建函数与Ember.js在使用上的差异 助手(来自Ember.js API文档): 助手(名称、功能、从属键) 注册绑定辅助对象或自定义视图辅助对象 示例: Ember.Handlebars.helper('capitalize_h', function(value) { return value.toUpperCase(); }); Handlebars.registerHelper('capitalize_rh', function(value
Ember.Handlebars.helper('capitalize_h', function(value) {
return value.toUpperCase();
});
Handlebars.registerHelper('capitalize_rh', function(value) {
return value.toUpperCase();
});
Ember.Handlebars.registerBoundHelper('capitalize_rbh', function(value) {
return value.toUpperCase();
});
Ember.Handlebars.helper('capitalize_h', function(value) {
return value.toUpperCase();
});
Handlebars.registerHelper('capitalize_rh', function(value) {
return value.toUpperCase();
});
Ember.Handlebars.registerBoundHelper('capitalize_rbh', function(value) {
return value.toUpperCase();
});
Ember.Handlebars.helper('capitalize_h', function(value) {
return value.toUpperCase();
});
Handlebars.registerHelper('capitalize_rh', function(value) {
return value.toUpperCase();
});
Ember.Handlebars.registerBoundHelper('capitalize_rbh', function(value) {
return value.toUpperCase();
});
通过使用3,我发现:
Ember.Handlebars.helper('capitalize_h', function(value) {
return value.toUpperCase();
});
Handlebars.registerHelper('capitalize_rh', function(value) {
return value.toUpperCase();
});
Ember.Handlebars.registerBoundHelper('capitalize_rbh', function(value) {
return value.toUpperCase();
});
假设模型的属性名的值为“Vageesh”,那么下面将提供相同的结果,即“Vageesh”:
{{ capitalize_h name }}
及
{{ capitalize_rh name }}
那么,在用法上是否还有其他区别,或者这是唯一的区别 另外,在什么情况下建议使用哪种帮助器创建方法?Ember.handlebar.helper和Ember.handlebar.registerBoundHelper使用特定于EmberJS的功能扩展registerHelper Handlebar方法,作为数据绑定或视图创建 创建绑定辅助对象
Bound helpers behave similarly to regular handlebars helpers, with the added ability to re-render when the underlying data changes.
Ember使用Ember.Handlebars提供Handlebars实例(我认为,不建议您直接访问Handlebars实例),它允许您使用registerHelper方法编写特定的Handlebars方法,该方法的函数参数接受以下格式:
Ember.Handlebars.helper('myHelperName', function(property, options) {
});
如果使用registerHelper方法定义助手,则助手将负责观察数据更改,并在必要时重新呈现其数据。Ember.handlebar.registerBoundHelper将在基础数据更改时重新呈现
当基础数据更改时,Ember.Handlebar.registerHelper将不会重新渲染 Ember.handlebar.helper是Ember.handlebar.registerBoundHelper或Ember.handlebar.registerHelper的别名,具体取决于参数中传递的内容。如果尝试创建自定义视图辅助对象,则Ember.handlebar.helper将在内部调用Ember.handlebar.registerHelper,否则,它将在内部调用Ember.handlebar.registerBoundHelper。在您的示例中(以及大多数用例),可以考虑“帮助器”与“RealStestEngulelHelp'”:
Ember.Handlebars.helper('capitalize_h', function(value) {
return value.toUpperCase();
});
…与…相同
Ember.Handlebars.registerBoundHelper('capitalize_h', function(value) {
return value.toUpperCase();
});
好的,那么直接访问把手助手是“不”吗?另外,Ember'helper'和'registerBoundHelper'之间有什么区别?区别在于'registerBoundHelper'在数据更改时自动重新呈现您的内容。正如我所说的,如果您使用registerHelper,您将需要实现它。查看Ember Handlebar包以查看一些内置的帮助器实现。有一些复杂的场景BoundHelper无法工作,因此您需要使用RegisterHelperHanks实现您的helper以获得解释。这增加了@ppcano的回复,有助于消除差异。:)