javascript - 如何在另一个自定义助手中调用一个自定义助手函数

标签 javascript handlebars.js

我想在另一个辅助函数中使用一个辅助函数。在下面的代码中,如果姓氏包含“Finch”一词,我想突出显示它。我为此编写了帮助类。 如果我们在 hbs 文件中使用,那么语法将是 {{highlight name}}。 但是如何使用它,因为我必须在另一个帮助类中使用它。

下面是我的代码:

  Handlebars.registerHelper('fullName', function(person) {
    return person.firstName + " " + person.lastName;
  });

   Handlebars.registerHelper('highlight', function(person) {    
var item = (person.lastName).replace('Finch', '<span style="color: red">' 
  + Finch + '</span>');
return new Handlebars.SafeString(item); 
  });

这是工作 fiddle :http://jsfiddle.net/wC6JT/4/

这是调用“突出显示”助手的 fiddle 。:http://jsfiddle.net/wC6JT/3/ .这不会产生任何结果,因为我们会收到 person.lastName 在“突出显示”注册助手中无法识别的控制台错误。

我想在 person.lastName 的全名助手中使用“突出显示”助手。 如何实现这一目标。

最佳答案

将第一个方法中你要使用的方法的内容提取到它自己的javascript方法中。然后根据需要在两个助手中调用该 javascript 方法。

除非将其中一个方法的内容重构为它自己的 javascript 方法,否则您无法做到这一点。

所以在你的情况下它应该是这样的:

Handlebars.registerHelper('fullName', function(person) {
    return person.firstName + " " + highlightJavascript(person);
  });

Handlebars.registerHelper('highlight', highlightJavascript);

highlightJavascript : function(person) {
   var item = (person.lastName).replace('Finch', '<span style="color: red">' 
  + Finch + '</span>');
return new Handlebars.SafeString(item); 
}

关于javascript - 如何在另一个自定义助手中调用一个自定义助手函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17874357/

相关文章:

javascript - 如何在 JavaScript 中处理 DST 和时区

javascript - 使用复选框标记要删除的行

javascript - 将 JSON 数据读入 Javascript

javascript - Angularjs 选项卡在渲染时加载微调器

javascript - 如何在 Handlebars 模板中使用 metalsmith-permalinks

knockout.js - 将 Handlebars.js 预编译模板与 KnockoutJS 结合使用

javascript - 如何在 Handlebars 模板中初始化 jQuery 小部件?

javascript - div 内带有 Backbone 的 Handlebars 模板不渲染

javascript - 将 graphql 查询与订阅相结合

tinymce - 在 Handlebars 模板中使用 TinyMCE