手把使用了js
文件:
var fs = require('fs');
function json(context) {
return JSON.stringify(JSON.parse(context), null, 2);
}
var myHelpers = {
json_data: function() {
return json(fs.readFileSync('file.json', {encoding: 'utf8'}));
}
};
let template = fs.readFileSync('tpl.hbs', { encoding: 'utf8' });
let result = dummyjson.parse(template, { helpers: helpers });
在行return json(fs.readFileSync('file.json', {encoding: 'utf8'}));
中说出TypeError: json is not a function
你会如何解决这个问题?为什么会发生?
答案 0 :(得分:0)
你可以这样做:
var fs = require('fs');
function json(context) {
return JSON.stringify(JSON.parse(context), null, 2);
}
var myHelpers = {
json_data: function() {
return this.json(fs.readFileSync('file.json', {encoding: 'utf8'}));
}
};
myHelpers.json_data.bind(this,window);
此处,
this
关键字引用了您的myHelpers
而不是window object
。因此,您需要bind
使用bind
方法将其指向当前window
。
答案 1 :(得分:0)
如果您所说的所有行都在一个文件中,那么您的代码就可以了。