#each中的handlebars.js #if语句不起作用

时间:2017-01-23 20:01:22

标签: javascript jquery json codeigniter handlebars.js

首先,感谢您的帮助。我确信我在某个地方做了一些愚蠢的事情,但我无法理解它并且它让我发疯。我试图提出很多关于其他用户的文章和建议,但不适合我。

我正在jQuery中构建一个应用程序,使用把手进行模板化,并从使用codeigniter构建的后端api获取数据。

我在#each中使用IF语句,如果已经选中了复选框,则显示复选框。 问题是IF语句似乎不能在#each中工作,因为它显示所有复选框,如果它们显然不是,则显示为

jquery函数如下:

<tbody id="checklist-table">
  <script id="checklist-row" type="text/x-handlebars-template">
    {{#each checklist}}
    <tr data-id="{{title}}">
      <td>
        <label class="fancy-checkbox">
          <input type="checkbox" {{#if completed}}checked="checked"{{/if}}>
          <span></span>
        </label>
      </td>
      <td colspan="2">{{title}} completed {{completed}}</td>
      <td style="text-align: right;">
        <button class="btn-view-fund btn btn-default btn-xs" type="button">
          <span class="glyphicon glyphicon-list" aria-hidden="true"></span>
        </button>
        <button class="btn-view-fund btn btn-default btn-xs" type="button">
          <span class="glyphicon glyphicon-remove" aria-hidden="true"></span>
        </button>
      </td>
    </tr>
    {{/each}}
  </script>
</tbody>

这是html片段:

{
    "checklist": [{
            "checklist_id": "1",
            "user_id": "2",
            "title": "test1",
            "decription": "test",
            "action": "test",
            "action_target": "test",
            "completed": "0",
            "date_added": "2017-01-23 19:31:49",
            "date_modified": "2017-01-23 19:31:49"
        }, {
            "checklist_id": "6",
            "user_id": "2",
            "title": "test2\r\n",
            "decription": "test",
            "action": "test",
            "action_target": "test",
            "completed": "1",
            "date_added": "2017-01-23 19:31:49",
            "date_modified": "2017-01-23 19:32:17"
        }, {
            "checklist_id": "11",
            "user_id": "2",
            "title": "test1",
            "decription": "test",
            "action": "test",
            "action_target": "test",
            "completed": "0",
            "date_added": "2017-01-23 19:31:49",
            "date_modified": "2017-01-23 19:31:49"
        }]
}

,api的输出如下:

            Handlebars.registerHelper('ifIsOne', function(value, options) {
          if(value === 1) {
            return options.fn(this);
          }
          return options.inverse(this);
        });

我已经尝试通过添加助手来实现,但它不起作用。

<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.6/handlebars.min.js"></script>

这是我使用

的版本
jenkins.*

和jquery-2.1.1.min.js。

谢谢

0 个答案:

没有答案