我将创建一个定制的handlebar辅助工具,但是每当通过终端编译它时,它总是会抛出对象#<对象>没有方法'fn'
。
我的handlebar工具如下:
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
]
}
当我查阅官方文档时,发现了以下代码。请有人解释一下这里的context
和options
到底是什么?
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;
});