Javascript 如何在Hogan.js中设置助手

Javascript 如何在Hogan.js中设置助手,javascript,handlebars.js,mustache,hogan.js,Javascript,Handlebars.js,Mustache,Hogan.js,我计划在下一个项目中使用Hogan.js。我试着尝试一下。我只是被卡住了,无法找到如何使用Hogan.js的助手。我以前习惯用把手。有没有办法在霍根上做类似的事情?来源: js是根据mustache测试套件开发的,因此这里指定的模板适用的所有内容,对于Hogan.js也是如此 有关功能的详细说明,请查看。特别是关于lambda表达式的部分 下面是hogan.js和handlebar.js之间实现的示例比较 模板 {{#bold}} Willy is awesome. {{/bold}}

我计划在下一个项目中使用Hogan.js。我试着尝试一下。我只是被卡住了,无法找到如何使用Hogan.js的助手。我以前习惯用把手。有没有办法在霍根上做类似的事情?

来源:

js是根据mustache测试套件开发的,因此这里指定的模板适用的所有内容,对于Hogan.js也是如此

有关功能的详细说明,请查看。特别是关于lambda表达式的部分

下面是hogan.js和handlebar.js之间实现的示例比较

模板

{{#bold}}
    Willy is awesome.
{{/bold}}
{{#foo}}
    Lets put this text in a html tag.
{{/foo}}
{{#foo}}
    {{bar}}
{{/foo}}
Hogan.js

{
    "bold": function() {
        return function(text, render) {
            return "<b>" + render(text) + "</b>"
        }
    }
}
Handlebars.registerHelper('bold', function(options) {
    return new Handlebars.SafeString(
        '<b>' + options.fn(this) + '</b>'
    );
});
"foo": function() {
    return function(text) {
        return "<p>" + text + "</p>"
    }
"foo": function() {
    return function(text) {
// First get the rendered bar variable
        var bar = Hogan.compile(text).render(this));
        return "<p>" + bar + "</p>"
    }
{
“粗体”:函数(){
返回函数(文本、渲染){
返回“+渲染(文本)+”
}
}
}
handlebar.js

{
    "bold": function() {
        return function(text, render) {
            return "<b>" + render(text) + "</b>"
        }
    }
}
Handlebars.registerHelper('bold', function(options) {
    return new Handlebars.SafeString(
        '<b>' + options.fn(this) + '</b>'
    );
});
"foo": function() {
    return function(text) {
        return "<p>" + text + "</p>"
    }
"foo": function() {
    return function(text) {
// First get the rendered bar variable
        var bar = Hogan.compile(text).render(this));
        return "<p>" + bar + "</p>"
    }
handlebar.registerHelper('bold',功能(选项){
返回新把手。安全字符串(
''+选项。fn(这个)+''
);
});
输出

<b>Willy is awesome.</b>
<p>Lets put this text in a html tag.</p>
威利太棒了。
在找到之前,我一直很难理解这一点

不再需要将渲染传递给辅助对象

模板

{{#bold}}
    Willy is awesome.
{{/bold}}
{{#foo}}
    Lets put this text in a html tag.
{{/foo}}
{{#foo}}
    {{bar}}
{{/foo}}
Hogan.js

{
    "bold": function() {
        return function(text, render) {
            return "<b>" + render(text) + "</b>"
        }
    }
}
Handlebars.registerHelper('bold', function(options) {
    return new Handlebars.SafeString(
        '<b>' + options.fn(this) + '</b>'
    );
});
"foo": function() {
    return function(text) {
        return "<p>" + text + "</p>"
    }
"foo": function() {
    return function(text) {
// First get the rendered bar variable
        var bar = Hogan.compile(text).render(this));
        return "<p>" + bar + "</p>"
    }
因此传递给助手的
文本就是
“{{bar}”
Hogan.js

{
    "bold": function() {
        return function(text, render) {
            return "<b>" + render(text) + "</b>"
        }
    }
}
Handlebars.registerHelper('bold', function(options) {
    return new Handlebars.SafeString(
        '<b>' + options.fn(this) + '</b>'
    );
});
"foo": function() {
    return function(text) {
        return "<p>" + text + "</p>"
    }
"foo": function() {
    return function(text) {
// First get the rendered bar variable
        var bar = Hogan.compile(text).render(this));
        return "<p>" + bar + "</p>"
    }
“foo”:函数(){
返回函数(文本){
//首先获取渲染条变量
var bar=Hogan.compile(text.render(this));
返回“”+bar+”

“ }
lambda's是您的全部,对我来说,这就足够了。您有没有用lambda's无法解决的具体问题?