我想在另一个辅助函数中使用一个辅助函数。在下面的代码中,如果姓氏包含“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/