gpt4 book ai didi

handlebars.js - Handlebars辅助函数中的options参数是什么?

转载 作者:行者123 更新时间:2023-12-04 05:38:50 25 4
gpt4 key购买 nike

我正在创建一个自定义的 Handlebars 帮助器,但通过终端进行编译时,它始终会抛出Object #<Object> has no method 'fn'

我的 Handlebars helper 是:

module.exports.register = function (Handlebars, opts, params)  { 
Handlebars.registerHelper('compimg', function (context, opts) {
var compImg = ["assets/img/icon-nope.png","assets/img/icon-check.png"];
return compImg[opts.fn(context)];
});
}

我的.hbs文件是:
{{#each checkable}}
<div class="col-md-3 col-xs-3 icon-container"><img src="{{compimg this}}"></div>
{{/each}}

我的JSON文件是:
{
"desc": "blablabla",
"checkable": [
1,
1,
1,
1
]
}

当我查看官方文档时,发现了这段代码。有人可以解释这里确切的 contextoptions吗?
Handlebars.registerHelper('each', function(context, options) {
var ret = "";

for(var i=0, j=context.length; i<j; i++) {
ret = ret + options.fn(context[i]);
}

return ret;
});

最佳答案

each的 Handlebars 示例是一个块帮助程序,这意味着{{#each}}{{/each}}标记之间有更多的标记或模板语法。当您使用此语法时,Handlebars将options参数作为最后一个参数传递给您的助手。 options对象包含一个fn方法,该方法的工作方式类似于已编译的模板... var html = options.fn(context);从块内部为您提供了呈现的模板。
context变量是您要传递给助手的东西,如果需要更多的参数,可以是任意数量的参数。

由于您是在做内联帮助程序而不是块帮助程序,因此我认为您只需要更改一行即可...

return compImg[opts.fn(context)];


return compImg[context];

关于handlebars.js - Handlebars辅助函数中的options参数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24606411/

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