ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript – ‘Helper’,’RegisterHelper’和’RegisterBoundHelper’之间的区别?

2019-05-28 22:28:11  阅读:194  来源: 互联网

标签:javascript ember-js handlebars-js


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

>助手(来自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();
});

> RegisterHelper(来自Handlebars.js):

例:

Handlebars.registerHelper('capitalize_rh', function(value) {
  return value.toUpperCase();
});

> RegisterBoundHelper(来自Ember.js API Docs):

例:

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

从使用3,我发现:

> Ember的助手(helper& registerBoundHelper)也可以处理模型的属性,

例如:

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

{{ capitalize_h name }} 

{{ capitalzie_rbh name }}

>但是,Handlebars的“注册助手”将不会以上述方式工作,即结果将是“NAME”:

{{ capitalize_rh name }}

那么,在使用方面是否有任何其他差异或这是唯一的区别?

另外,在什么情况下建议使用哪种帮助器创建方法?

解决方法:

Ember.Handlebars.helper和Ember.Handlebars.registerBoundHelper使用EmberJS特定功能扩展registerHelper把手方法作为数据绑定或视图创建.

registerBoundHelper创建一个绑定帮助器.

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方法定义助手,则助手将负责观察数据更改并在必要时重新呈现其数据.

标签:javascript,ember-js,handlebars-js
来源: https://codeday.me/bug/20190528/1174130.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有