我无法赶上对普通 Handlebars 和修改后的 Ember Handlebars 助手所做的所有更改。如果我没记错的话,您可以使用以下方法注册一个助手
- Ember.Handlebars.helper
- Ember.Handlebars.registerHelper
- Ember.Handlebars.registerBoundHelper
- Handlebars.registerHelper
这对我来说太多了。你能具体解释一下有什么区别吗?
我无法赶上对普通 Handlebars 和修改后的 Ember Handlebars 助手所做的所有更改。如果我没记错的话,您可以使用以下方法注册一个助手
这对我来说太多了。你能具体解释一下有什么区别吗?
Ember.Handlebars.registerHelper
是一个不将参数字符串绑定到属性的基本助手。例如,考虑一个使用它hello
创建的助手registerHelper
,它只返回一条问候消息。
Ember.Handlebars.registerHelper('hello', function(name) {
return 'Hello ' + name;
});
当您在模板中使用它时,
{{hello name}}
你会得到显示文本,Hello name
。不查找该name
属性的值。
要将name
属性的值放入您需要的助手中,registerBoundHelper
. 顾名思义,它创建了与name
属性之间的绑定。任何时候,name
都会再次调用助手进行更改以重新渲染。实现方式类似,
Ember.Handlebars.registerBoundHelper('hello', function(name) {
return 'Hello ' + name;
});
这与一些额外的检查Ember.Handlebars.helper
相同,registerBoundHelper
以自动检测您想要什么样的助手。
香草Handlebars.registerHelper
不在 Ember 中使用。它会为不使用 Ember 的项目创建类似的助手。
Ember.Handlebars.helper
应该用于注册助手,其他方法只是它的有限版本。Ember.Handlebars.helper
使用使视图和模型保持同步的绑定呈现 HTML。函数、视图和组件可以作为帮助定义提供。
Ember.Handlebars.registerBoundHelper
就像Ember.Handlebars.helper
,但您只能提供一个 Function 作为辅助定义。
Ember.Handlebars.registerHelper
以前委托给Handlebars.registerHelper
. Ember.Handlebars.registerHelper
不再存在,但在设置绑定后Handlebars.registerHelper
仍然在内部用于创建所有帮助程序。Ember