SailsJs Handlebar 辅助函数不起作用
SailsJs Handlebar helper functions does not work
我正在使用 Handlebars 作为 Sailsjs 的模板引擎。基本模板工作正常,但我找不到使用 Handlebars 辅助函数的方法,甚至内置函数也不可用。
我已经使用以下文章设法解决了部分问题。
https://github.com/balderdashy/sails/issues/2414
我还在 config 文件夹中注册了 helpers.js,但我无法调用任何自定义、内置块或迭代辅助函数。
任何解决助手问题的建议都会有所帮助。
Sailsjs 版本 - 0.11.4
把手版本 - 4.0.5
我在上面的文件中注册了这样的辅助函数:
Handlebars.registerHelper('help', function() {
return "help22";
});
我在我的模板中调用了同样的方法:
{{{help}}}
知道为什么它没有渲染吗?
好的,经过几个小时的尝试,我想出了一个解决方案:
您可以将此行添加到 config/helpers.js
的末尾
module.exports = Handlebars.helpers;
里面 view.js:
module.exports.views = {
engine: 'handlebars',
layout: 'layout',
partials: 'partials',
helpers: require('./helpers')
};
它会起作用。
以上解决方案对我不起作用 - 我收到错误 "Handlebars is not defined" 因为我没有检查这个 link- https://github.com/balderdashy/sails/issues/2414
我不得不在 /config/helpers.js
中添加 Handlebars = require('handlebars');
全部放在一起:
编辑文件/config/views.js
module.exports.views = {
engine: 'handlebars',
extension: 'html', // optional
layout: 'layouts/main', // optional, will load /views/layouts/main.html
partials: 'partials', // optional, will load partials from /views/partials/
helpers: require('./helpers') // <-- this is it
};
创建文件/config/helpers.js
Handlebars = require('handlebars');
module.exports = Handlebars.helpers;
Handlebars.registerHelper('stringify', function(obj) {
var json = {}, prop, tmp;
for (prop in obj) {
if (obj.hasOwnProperty(prop)) {
try {
tmp = JSON.stringify(obj[prop]);
json[prop] = obj[prop];
} catch (e) {
json[prop] = '[CAN NOT stringify]';
}
}
}
return JSON.stringify(json, null, 2);
});
在模板中我使用{{stringify entry}}
已在 Sails v0.12.13
上测试
我正在使用 Handlebars 作为 Sailsjs 的模板引擎。基本模板工作正常,但我找不到使用 Handlebars 辅助函数的方法,甚至内置函数也不可用。
我已经使用以下文章设法解决了部分问题。 https://github.com/balderdashy/sails/issues/2414
我还在 config 文件夹中注册了 helpers.js,但我无法调用任何自定义、内置块或迭代辅助函数。
任何解决助手问题的建议都会有所帮助。 Sailsjs 版本 - 0.11.4 把手版本 - 4.0.5
我在上面的文件中注册了这样的辅助函数:
Handlebars.registerHelper('help', function() {
return "help22";
});
我在我的模板中调用了同样的方法:
{{{help}}}
知道为什么它没有渲染吗?
好的,经过几个小时的尝试,我想出了一个解决方案:
您可以将此行添加到 config/helpers.js
的末尾module.exports = Handlebars.helpers;
里面 view.js:
module.exports.views = {
engine: 'handlebars',
layout: 'layout',
partials: 'partials',
helpers: require('./helpers')
};
它会起作用。
以上解决方案对我不起作用 - 我收到错误 "Handlebars is not defined" 因为我没有检查这个 link- https://github.com/balderdashy/sails/issues/2414
我不得不在 /config/helpers.js
中添加Handlebars = require('handlebars');
全部放在一起:
编辑文件/config/views.js
module.exports.views = {
engine: 'handlebars',
extension: 'html', // optional
layout: 'layouts/main', // optional, will load /views/layouts/main.html
partials: 'partials', // optional, will load partials from /views/partials/
helpers: require('./helpers') // <-- this is it
};
创建文件/config/helpers.js
Handlebars = require('handlebars');
module.exports = Handlebars.helpers;
Handlebars.registerHelper('stringify', function(obj) {
var json = {}, prop, tmp;
for (prop in obj) {
if (obj.hasOwnProperty(prop)) {
try {
tmp = JSON.stringify(obj[prop]);
json[prop] = obj[prop];
} catch (e) {
json[prop] = '[CAN NOT stringify]';
}
}
}
return JSON.stringify(json, null, 2);
});
在模板中我使用{{stringify entry}}
已在 Sails v0.12.13
上测试