标签: handlebarshelper

Handlebars:当有两行项目时获取项目的索引

@key下面总是给0 1 2 3甚至在第二排.请帮忙.

把手模板:

{{#grouped_each 4 orderData}}
<div class="row">
    {{#each this }}
    <div class="col-md-3">
        <div class="thumbnail">
            <img src="{{getImageSourceChannel ../../channelNames @key name}}" class="">
            <div class="caption">
                <p><b>{{getObjectAtIndex ../../channelNames @key}}</b></p>
                <p class="">{{slices.4.count}} new orders</p>
                <p class="">{{slices.3.count}} back orders</p>                   

            </div>
        </div>
    </div>
    {{/each}}
</div>
{{/grouped_each}} 
Run Code Online (Sandbox Code Playgroud)

把手部分:

Handlebars.registerHelper('grouped_each', function(every, context, options) {
    var out = "", subcontext = [], i;
    console.log(every);
    console.log(context);
    console.log(options);
    if (context && context.length > 0) {
        for (i = 0; i < context.length; i++) {
            if …
Run Code Online (Sandbox Code Playgroud)

loops handlebars.js handlebarshelper

12
推荐指数
1
解决办法
689
查看次数

如何在HTMLBars中编写助手?

在最新发布的EmberJS之后,v1.9.0我试图从Handlebars转移到HTMLbars.我发现非常具有挑战性的是缺乏文档.

我正在尝试实现非常简单的帮助器.

例如,拿这个把手帮手:

HTML

<div id="main"></div>

<script type="text/x-handlebars" data-template-name="index">
    {{logIt test}}
    <h1>{{test}}</h1>
</script>
Run Code Online (Sandbox Code Playgroud)

JS

App = Ember.Application.create({
    rootElement: '#main'
});

    App.IndexRoute = Ember.Route.extend({
        setupController: function(controller){
            controller.set('test', 'mytest');
        }
    });

    Ember.Handlebars.registerHelper("logIt", function(something) {
        console.log(something);
    });
Run Code Online (Sandbox Code Playgroud)

Js Fiddle:http://jsfiddle.net/sisir/p463q2L8/

如何将其转换为htmlbars?

javascript handlebars.js ember.js handlebarshelper htmlbars

6
推荐指数
1
解决办法
2674
查看次数

有没有办法将变量传递给 PugJS 过滤器

使用 Pug 过滤器和 jsTransformer-handlebars 模块,我试图将一些把手代码插入到一个将使用本地人的 pug 模板中。然而,由于 Pug 在编译时渲染过滤器,我们不能使用模板 locals。所以我想知道让 jsTransformer 在浏览器上可用是否会解决这个问题,如果是,如何打包 jsTransformer-handlebars 模块并使其在浏览器上可用。这是问题的概要(有点长,我很抱歉。我想提供大量细节以确保问题清晰):

我有以下通常用于车把的辅助函数):

//helpers.js
module.exports = {
  truncate: (str, len) => {
    //code
    return str;
  },

  stripTags: input => input.replace(/<(?:.|\n)*?>/gm, ''),

  formatDate: (date, format) => moment(date).format(format),

  select: function (selected, options) {
    return options.fn(this).replace(new RegExp(` value="${selected}"`), '$&selected="selected"').replace(new RegExp(`>${selected}</option>`), 'selected="selected"$&');
  },
};
Run Code Online (Sandbox Code Playgroud)

helpers.js 在 app.js 中被导入并且函数被设置为应用程序变量。除了 select() 之外,它们都可以在 pug 中使用。

//sets application locals so I can call these functions from a pug template
app.locals = {
  truncate,
  stripTags,
  formatDate,
  select, …
Run Code Online (Sandbox Code Playgroud)

helper express handlebars.js handlebarshelper pug

6
推荐指数
0
解决办法
547
查看次数

创建HandleBars助手服务器端的语法是什么?

使用Handlebars.Net,我想创建一个HandlebarsHelper,它将用<br>标签替换回车和换行符.它应该看起来像这样:

string pattern = @"/(\r\n|\n|\r)/gm";
string replacement = "<br>";
Regex rgx = new Regex(pattern);

Handlebars.RegisterHelper("link_to", (string text) =>
{
    text = rgx.Replace(text, replacement);
});
Run Code Online (Sandbox Code Playgroud)

编译器(或resharper)告诉我它无法判断我是否正在尝试使用HandlebarsBlockHelper或HandlebarsHelper,而且我在任何一种情况下都缺少参数.

  1. 这两者有什么区别?
  2. 我似乎无法找到任何这方面的文档.是否有上述两个对象以及HelperOptions的文档,以及如何使用TextWriter,dymanic上下文和参数对象列表?

c# handlebarshelper handlebars.net

5
推荐指数
1
解决办法
1509
查看次数

如何使handlebars-loader 与handlebars-helpers 一起使用

handlebars-loader如何与handlebars-helpers一起工作?

webpack.configs:

  { // handlebars-loader
    test: /\.handlebars$/,
    loader: "handlebars-loader?helperDirs[]=" + __dirname + "/helpers"
  }
Run Code Online (Sandbox Code Playgroud)

但是,如何导入 handlebars-helpers 并使用 handlebars-helpers

谢谢!

handlebars.js handlebarshelper

5
推荐指数
0
解决办法
295
查看次数

如何使用 webpack(handlebars-loader) 在把手中使用助手

我在我的项目中使用 Handlebars,并使用 webpack 捆绑模板。我正在使用handlebars-loader编译模板。我在创建一个小助手时遇到了问题。当我在模板中使用 helper 时,Webpack 会显示此错误:

You specified knownHelpersOnly, but used the unknown helper withCurrentItem - 5:4
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

网络包:

{
        test   : /\.(tpl|hbs)$/,
        loader : "handlebars-loader?helperDirs[]=" + __dirname + "templates/helpers"
        // use    : 'handlebars-loader?helperDirs[]=false' + __dirname + 'templates/helpers'
},
Run Code Online (Sandbox Code Playgroud)

助手(项目/模板/助手/withCurrentItem.js):

export default function (context, options) {
  const contextWithCurrentItem = context

  contextWithCurrentItem.currentItem = options.hash.currentItem

  return options.fn(contextWithCurrentItem)
}
Run Code Online (Sandbox Code Playgroud)

模板文件(project/templates/products.tpl):

{{> partials/filters}}
<ul class="u-4-5">
  {{#each data.products}}
    {{> partials/product}}
    {{withCurrentItem ../styles currentItem=this}}
  {{/each}}
</ul>
Run Code Online (Sandbox Code Playgroud)

我试图解决这个问题并在互联网上搜索,但我找不到任何东西。这是我尝试过的:

  • helperDirs[]查询参数添加到加载器:

    loader : "handlebars-loader?helperDirs[]=" …

handlebars.js webpack handlebarshelper

5
推荐指数
2
解决办法
5072
查看次数

在 AWS SES 上实施把手助手,以便在 HTML 电子邮件程序中条件性地呈现标记

我们正在创建一个 HTML 电子邮件模板,该模板需要根据 JSON 数据中的属性之一的值有条件地呈现标记。我们发现以下示例,您可以创建自定义 Handlebar Helpers 来完成此操作,但在使用这些助手时,AWS SES 拒绝发送电子邮件。

这是我们正在尝试的示例:

<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/3.0.1/handlebars.min.js"> 
</script>
<script type="text/x-handlebars-template">  
    Handlebars.registerHelper("equals", function(string1 ,string2, options) {
        if (string1 === string2) {
            return options.fn(this);
        } else {
            return options.inverse(this);
        }
    }); 

</script>  

{{#equals network "Telkom" }}
<p>This is Telkom {{network}}</p>
{{else}}
This is Not Telkom {{network}}
{{/equals}} 
Run Code Online (Sandbox Code Playgroud)

我们在以下帖子中找到了这个实现: 把手 if/else 语句中的逻辑?

我们还做了一些调查,并在 AWS 论坛上发现了这个讨论,该讨论似乎声称 SES 不支持自定义车把助手 https://forums.aws.amazon.com/thread.jspa?messageID=983645

有谁知道这是否可能,如果不可能,当我们使用 SES 发送电子邮件时,是否有另一种方法有条件地呈现所需的标记?

amazon-web-services amazon-ses handlebars.js handlebarshelper

5
推荐指数
1
解决办法
1524
查看次数

TypeError:Handlebars.registerHelper不是函数

我两天前对节点和车把都是全新的,所以请耐心等待.我试图使用自定义车把助手,但我不完全确定在哪里放.

我一直得到"TypeError:Handlebars.registerHelper不是一个函数"

现在我把它放在我的server.js文件中.不确定这是否正确.

var express  = require('express');
var app      = express();
var Handlebars  = require('express-handlebars');


app.engine('handlebars', Handlebars({
    defaultLayout: 'main'
}));

app.set('view engine', 'handlebars');

Handlebars.registerHelper("if", function(conditional, options) {
  if (options.hash.desired === options.hash.type) {
    options.fn(this);
  } else {
    options.inverse(this);
  }
});
Run Code Online (Sandbox Code Playgroud)

javascript node.js handlebars.js handlebarshelper

3
推荐指数
2
解决办法
5547
查看次数

车把 If-Else If-Else 与字符串相等函数

HandlebarsJS 不支持字符串相等('=='),所以我必须编写自己的助手,但这个答案不清楚:

/sf/answers/1056651361/

Handlebars.registerHelper('if_eq', function(a, b, opts) {
    if(a == b) // Or === depending on your needs
        return opts.fn(this);
    else
        return opts.inverse(this);
});
Run Code Online (Sandbox Code Playgroud)

然后调整您的模板:

{{#if_eq this "some message"}}
    ...
{{else}}
    ...
{{/if_eq}}
Run Code Online (Sandbox Code Playgroud)

1)他为什么做{{#if_eq ..}}而不是{{#if if_eq .. }}

2)我还需要做ELSE-IF,这是自 Handlebars 3.0.0(我有 4.0)以来支持的。但是使用他的符号,我将无法做到{{#elseif_eq}}没有这样的表达。我将如何使用此自定义帮助程序实现 ELSE-IF?

templates handlebars.js handlebarshelper

3
推荐指数
1
解决办法
1万
查看次数

Handlebars.Net If 条件助手

我尝试编写一个 Handlebar.Net 助手,其工作方式类似于 Equals。\n助手应该像这样使用

\n\n
{{#eq name "Foo"}}\n    true\n{{else}}\n    false\n{{/eq}}\n
Run Code Online (Sandbox Code Playgroud)\n\n

但我不知道如何实现这个助手。JS中有这样的示例,但我无法\xc2\xb4t 找到 C# 的示例。

\n\n

我的第一枪是:

\n\n
Handlebars.RegisterHelper("#eq", (output, context, data) =>\n{\n    if (data.Length != 2)\n        output.WriteSafeString("false");\n\n    output.WriteSafeString(data[0].Equals(data[1]));\n});\n
Run Code Online (Sandbox Code Playgroud)\n\n

但这只是将 True 或 False 写入我的文件中。

\n

c# handlebarshelper handlebars.net

3
推荐指数
1
解决办法
2484
查看次数