javascript - 使用 Handlebars 查找助手访问数组和输出属性中的对象

标签 javascript handlebars.js

我正在使用 Handlebars 查找助手根据索引查找数组中的对象。

不幸的是,我无法输出对象的属性。

HTML:

 <script id="entry-template" type="text/x-handlebars-template">
      <div class="entry">
        <h1>Employees</h1>
        <div class="body">
          <ul>
            <li> 1.Employee {{lookup this 0}}</li>
            <li> 2.Employee {{lookup this 1}}</li>
          </ul>
        </div>
      </div>
    </script>

    <div id="content">

    </div>

Javascript:

var employees = [ { name : 'Joe'}, { name : 'Bob'} ];

var source   = $("#entry-template").html();
var template = Handlebars.compile(source);

var html    = template(employees);

$('#content').append(html);

和jsfiddle:https://jsfiddle.net/sgu2mmdz/1/

这是一个演示我的问题的简化示例。我知道有更简单的方法,因此可以使用each 帮助器输出名称

编辑:这是一个更新的jsfiddle,其版本更接近我需要实现的目标:https://jsfiddle.net/sgu2mmdz/6/

最佳答案

您可以直接使用 this.<index>.<property> 访问数组对象。所以在你的情况下它会像 this.0.name从员工数组中的第一个元素获取姓名。这是更新的 fiddle :https://jsfiddle.net/sgu2mmdz/3/

我希望这是你想要的。当然,正如您在问题中提到的,也可以使用 each 来完成.

另外,我建议您使用 log来调试此类问题。它通常可以帮助您识别自己做错了什么。

var employees = [ { name : 'Joe'}, { name : 'Bob'} ];

var source   = $("#entry-template").html();
var template = Handlebars.compile(source);

var html    = template(employees);

$('#content').append(html);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.10/handlebars.js"></script>

<script id="entry-template" type="text/x-handlebars-template">
      <div class="entry">
        <h1>Employees</h1>
        <div class="body">
          <ul>
            <li> 1.Employee {{this.0.name}}</li>
            <li> 2.Employee {{this.1.name}}</li>
          </ul>
        </div>
      </div>
    </script>

    <div id="content">

    </div>

关于javascript - 使用 Handlebars 查找助手访问数组和输出属性中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45332004/

相关文章:

javascript - 检测带有子域的 url 中的主机

javascript - 获取 POST ReactJs 到 Controller .Net Core

gruntjs - 遍历 yeoman 中的子目录并组装

javascript - Typeahead.js:页脚查询如何工作?

javascript - 在 chrome 内容脚本中使用 html 模板

javascript - jQuery使用哪些工具来压缩其源代码

javascript - Javascript 中的向量类

javascript - 如何存储获取的数据

javascript - 无法传递查询结果以查看并呈现为 JSON

meteor - #if Handlebars 中的语句