如何在使用手柄时在Sails v0.11.0中使用助手
问题描述:
我想用Sails v0.11.0
来使用手柄助手功能,但不知道如何配置它们。如何在使用手柄时在Sails v0.11.0中使用助手
有与以前的版本helpers in sails有效的解决方案,但不知道它是如何在v0.11.0
答
工作,你首先需要安装车把
npm i -S handlebars
然后你只需要注册一个帮手。为了清楚起见,我想在config
-文件夹中生成helper.js
-文件。
比方说,你希望能够呈现JSON:
var handlebars = require('handlebars');
handlebars.registerHelper('json', function (context) {
return JSON.stringify(context);
});
然后,在你的意见,你会只写:
<script type="text/javascript">
var object = {{{json example}}};
</script>
答
这可能不是最好的形式给出,但它finaly为我工作。
当风帆配置为使用车把时,它使用express-handlebars
包作为依赖性安装。这express-handlebars
使用其依赖包handlebars
的实例。您需要在此实例上使用registerHelper方法。
我创建config/helpers.js
与此内容:
var handlebars = require("../node_modules/sails/node_modules/express-handlebars/node_modules/handlebars");
handlebars.registerHelper('decorateElement', function (context) {
return "<span class='red'>" + context + "</span>");
});
答
使用sailsjs 0.12是添加出口的辅助功能一个配置/ helpers.js文件的人最简单的办法:
module.exports = {
ifCond (v1, v2, options) {
if (v1 === v2) {
return options.fn(this);
}
return options.inverse(this);
},
json (context) {
return JSON.stringify(context);
}
};
和在config/views.js文件中加入以下内容:
helpers: require("./helpers"),
感谢您的回答。我明白这一点,但是它在'v0.11.0'中为你工作吗?在这个版本中,所有的配置文件都必须导出一个函数,我不能直接添加配置。如果我这样做,我会在我的模板中失去帮助错误。 – pawanrawal
@ user108203嗯,这很奇怪。 :(在0.11中它对我很好用,你是否已经将渲染引擎改为了handlebars? – Tholle
是的,我有把手模板引擎和partials工作,并且在视图中我的文件有'.handlebars'扩展名,所以我仍然需要添加脚本标签? – pawanrawal