Handlebars 助手和 Ember Handlebars 助手有什么区别? [英] What's the difference between Handlebars helpers and Ember Handlebars helpers?

查看:33
本文介绍了Handlebars 助手和 Ember Handlebars 助手有什么区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法赶上对普通 Handlebars 和修改后的 Ember Handlebars 助手所做的所有更改.如果我没记错的话,你可以通过以下方法注册一个助手

I can't catch up with all those changes done to plain Handlebars and modified Ember Handlebars helpers. If I remember correctly you can register a helper with the following methods

  • Ember.Handlebars.helper
  • Ember.Handlebars.registerHelper
  • Ember.Handlebars.registerBoundHelper
  • Handlebars.registerHelper

这对我来说太过分了.你能具体解释一下有什么区别吗?

That's too much for me. Could you explain it down to earth what's the difference?

推荐答案

Ember.Handlebars.registerHelper 是一个基本的帮助器,它不会将参数字符串绑定到属性.例如,考虑使用 registerHelper 创建的 hello 助手,它只返回一条问候消息.

Ember.Handlebars.registerHelper is a basic helper that does not bind the argument string to a property. For instance, consider a hello helper created with registerHelper that just returns a greeting message.

Ember.Handlebars.registerHelper('hello', function(name) {
  return 'Hello ' + name;
});

当你在模板中使用它时,

When you use it in a template,

{{hello name}}

您将获得显示文本为,Hello name.name 属性的值查找.

You will get the display text as, Hello name. The value of the name property is not looked up.

要将name 属性的值放入您需要的帮助程序中,registerBoundHelper.顾名思义,它在 name 属性之间创建了一个绑定.每当 name 改变时,助手都会被再次调用以重新渲染.实现类似,

To get the value of the name property into the helper you need, registerBoundHelper. As the name suggests it creates a binding between to the name property. Anytime the name changes the helper is called again to rerender. The implementation is similar,

Ember.Handlebars.registerBoundHelper('hello', function(name) {
  return 'Hello ' + name;
});

Ember.Handlebars.helperregisterBoundHelper 相同,但有一些额外的检查来自动检测你想要什么样的助手.

The Ember.Handlebars.helper is same as registerBoundHelper with some additional checks to autodetect what kind of helper you want.

原版 Handlebars.registerHelper 未在 Ember 中使用.它将为不使用 Ember 的项目创建类似的帮助程序.

The vanilla Handlebars.registerHelper isn't used within Ember. It would create similar helpers for projects not using Ember.

这篇关于Handlebars 助手和 Ember Handlebars 助手有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆