如何创建检查文件扩展名的Handlebars助手

时间:2018-09-17 15:57:35

标签: javascript html handlebars.js

您好,我正在尝试检查文件的扩展名是JPG,PNG,PDF,DOC还是Excel,以根据文件扩展名显示图标。

var info = [
  {
    IdTrnx = 1234567
    files = [{
      0:"pic.jpg",
      1:"file.pdf"
    }]
  },
  {
    IdTrnx = 7654321
    files = [{
      0:"pic.png",
      1:"file.doc"
    }]
  }
]

那是我的对象。

这是我当前的把手。

<table id="tb-tickets" class="table">
    <thead>
        <tr>
            <th data-field=""># Transacción</th>
            <th data-field="">Tickets</th>
        </tr>
    </thead>
    <tbody>
        {{#each this}}
            <tr>
                <td>{{IdTrnx}}</td>
                <td>
                    {{#each files}}
                        <button type="button" class="btn btn-sm btn-outline-secondary" data-toggle="modal" data-target="#fileModaltickets" data-file="{{this}}" id="getFile"><i class="fa fa-file-text-o"></i></button>
                    {{/each}}
                </td>
            </tr>
        {{/each}}
    </tbody>
</table>

Rigth现在为每个文件显示相同的图标。 如何创建车把助手以检查扩展名并将图标设置为正确的扩展名。

1 个答案:

答案 0 :(得分:0)

这是您声明助手的方式

Handlebars.registerHelper('checkExtension', function(item, options) {
    var regex = '/.*jpg|JPG|png|PNG|doc|DOC|xls|XLS|pdf|PDF$/';
    if (item.match(regex)) {
      return "checked";
    } else {
      return "";
    }
});

这是模板中的用途:

<button type="button" class="btn btn-sm btn-outline-secondary" data-toggle="modal" data-target="#fileModaltickets" data-file="{{this}}" id="getFile" {{checkExtension this}}><i class="fa fa-file-text-o"></i></button>

如果您的文件具有正确的文件扩展名,则会添加“已检查”一词