如何在使用把手时在Sails v0.11.0中使用帮助程序

时间:2015-10-05 16:18:49

标签: sails.js handlebars.js

我想在Sails v0.11.0中使用Handlebar helper函数,但无法理解如何配置它们。

有一个解决方案适用于以前的版本helpers in sails,但不确定它在v0.11.0中的工作原理

3 个答案:

答案 0 :(得分:1)

这可能不是最好的方法,但最终对我有用。

当sails配置为使用把手时,它使用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>");
});

答案 1 :(得分:0)

首先需要安装把手

npm i -S handlebars

然后你只需要注册一个助手。为清晰起见,我想在helper.js - 文件夹中创建一个config文件。

让我们说你希望能够渲染json:

var handlebars = require('handlebars');

handlebars.registerHelper('json', function (context) {
  return JSON.stringify(context);
});

然后,在您的视图中,您只需编写以下内容:

<script type="text/javascript">

  var object = {{{json example}}};

</script>

答案 2 :(得分:0)

使用sailsjs 0.12的人最简单的解决方案是添加一个导出帮助函数的config / 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"),