jsreport 2.0 BeforeRender 不工作
jsreport 2.0 BeforeRender Not Working
我正在开发 jsreport v2.0 并希望为报告呈现数据。我正在使用 handlebars 和 phantom-pdf,默认情况下我的 beforeRender 函数没有被调用。
对于 jsreport v2.0,我已经为 beforeRender 添加了如下监听器,但它似乎仍然没有被默认调用来渲染数据。
function beforeRenderListeners1(req,res){
console.log("Listener Called");
}
const jsreport = require('jsreport-core')({
})
jsreport.beforeRenderListeners.add('beforeRenderListeners1', (req, res) => {
console.log("hello");
req.data.check = abc();
})
因为我不知道您正在使用的完整代码,所以我将继续为您提供一个适用于最新 jsreport-core v2 (2.0.3) 和节点 8 的代码片段
const jsreport = require('jsreport-core')()
jsreport.use(require('jsreport-handlebars')())
jsreport.beforeRenderListeners.add('beforeRenderListeners1', (req, res) => {
console.log("before render called")
req.data = req.data || {}
req.data.check = 'check pass'
})
jsreport.init().then(() => {
console.log('started')
return jsreport.render({
template: {
content: '<p>sample demo content, check: {{check}}</p>',
engine: 'handlebars',
recipe: 'html'
}
})
}).then((res) => {
console.log('render done')
console.log(res.content.toString())
}).catch((err) => console.error(err))
将其放入一个文件中,然后 运行 它,您将在控制台中看到消息 before render called
。
我正在开发 jsreport v2.0 并希望为报告呈现数据。我正在使用 handlebars 和 phantom-pdf,默认情况下我的 beforeRender 函数没有被调用。 对于 jsreport v2.0,我已经为 beforeRender 添加了如下监听器,但它似乎仍然没有被默认调用来渲染数据。
function beforeRenderListeners1(req,res){
console.log("Listener Called");
}
const jsreport = require('jsreport-core')({
})
jsreport.beforeRenderListeners.add('beforeRenderListeners1', (req, res) => {
console.log("hello");
req.data.check = abc();
})
因为我不知道您正在使用的完整代码,所以我将继续为您提供一个适用于最新 jsreport-core v2 (2.0.3) 和节点 8 的代码片段
const jsreport = require('jsreport-core')()
jsreport.use(require('jsreport-handlebars')())
jsreport.beforeRenderListeners.add('beforeRenderListeners1', (req, res) => {
console.log("before render called")
req.data = req.data || {}
req.data.check = 'check pass'
})
jsreport.init().then(() => {
console.log('started')
return jsreport.render({
template: {
content: '<p>sample demo content, check: {{check}}</p>',
engine: 'handlebars',
recipe: 'html'
}
})
}).then((res) => {
console.log('render done')
console.log(res.content.toString())
}).catch((err) => console.error(err))
将其放入一个文件中,然后 运行 它,您将在控制台中看到消息 before render called
。