如何在使用手柄时在Sails v0.11.0中使用助手

如何在使用手柄时在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> 
+0

感谢您的回答。我明白这一点,但是它在'v0.11.0'中为你工作吗?在这个版本中,所有的配置文件都必须导出一个函数,我不能直接添加配置。如果我这样做,我会在我的模板中失去帮助错误。 – pawanrawal

+0

@ user108203嗯,这很奇怪。 :(在0.11中它对我很好用,你是否已经将渲染引擎改为了handlebars? – Tholle

+0

是的,我有把手模板引擎和partials工作,并且在视图中我的文件有'.handlebars'扩展名,所以我仍然需要添加脚本标签? – pawanrawal

这可能不是最好的形式给出,但它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"),