gpt4 book ai didi

javascript - 'Helper'、 'RegisterHelper' 和 'RegisterBoundHelper' 之间的区别?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:24:30 25 4
gpt4 key购买 nike

如标题所示,我正在寻找上述帮助程序创建函数与 Ember.js 的用法差异。

  1. 助手(来自 Ember.js API 文档):

    helper (name, function, dependentKeys)

    Register a bound helper or custom view helper.

    示例:

    Ember.Handlebars.helper('capitalize_h', function(value) {
    return value.toUpperCase();
    });
  2. RegisterHelper(来自 Handlebars.js):

    示例:

    Handlebars.registerHelper('capitalize_rh', function(value) {
    return value.toUpperCase();
    });
  3. RegisterBoundHelper(来自 Ember.js API 文档):

    示例:

    Ember.Handlebars.registerBoundHelper('capitalize_rbh', function(value) {
    return value.toUpperCase();
    });

通过使用 3,我发现:

  1. Ember 的助手(helper 和 registerBoundHelper)也可以处理模型的属性,

    例如:

    假设该模型具有值为“Vageesh”的属性名称,那么以下将提供相同的结果,即“VAGEESH”:

    {{ capitalize_h name }} 

    {{ capitalzie_rbh name }}
  2. 但是,Handlebars 'register helper' 不会以上述方式工作,即结果将是 'NAME':

    {{ capitalize_rh name }}

那么,在用法上是否还有其他差异,或者这是唯一的差异吗?

此外,在什么情况下建议使用哪种助手创建方法?

最佳答案

Ember.Handlebars.registerBoundHelper 将在基础数据更改时重新呈现。

Ember.Handlebars.registerHelper 不会在基础数据更改时重新呈现。

Ember.Handlebars.helper 是 Ember.Handlebars.registerBoundHelper 或 Ember.Handlebars.registerHelper 的别名,具体取决于参数中传递的内容。如果您尝试创建自定义 View 助手,Ember.Handlebars.helper 将在内部调用 Ember.Handlebars.registerHelper,否则,它将调用 Ember.Handlebars.registerBoundHelper。在您的示例(以及与此相关的大多数用例)中,您可以将“helper”视为与“registerBoundHelper”相同:

Ember.Handlebars.helper('capitalize_h', function(value) {
return value.toUpperCase();
});

...与...相同

Ember.Handlebars.registerBoundHelper('capitalize_h', function(value) {
return value.toUpperCase();
});

关于javascript - 'Helper'、 'RegisterHelper' 和 'RegisterBoundHelper' 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23286873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com