Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用下划线模板显示JS对象?_Javascript_Templates_Underscore.js_Underscore.js Templating - Fatal编程技术网

Javascript 如何使用下划线模板显示JS对象?

Javascript 如何使用下划线模板显示JS对象?,javascript,templates,underscore.js,underscore.js-templating,Javascript,Templates,Underscore.js,Underscore.js Templating,我打算使用下划线模板显示JS数据对象。我似乎无法解决如何钻取对象以获取国家名称或其他日期(例如tarrifType)并使用我的模板显示它。对象看起来像这样 var items = [ { "country": { "China": [ { "tarrifType": "China Pass", "fixLine": "23p", }, { "tarrifType": "Monthly plan", "fixLine":

我打算使用下划线模板显示JS数据对象。我似乎无法解决如何钻取对象以获取国家名称或其他日期(例如tarrifType)并使用我的模板显示它。对象看起来像这样

var items = [
{
"country": {
  "China": [
    {
      "tarrifType": "China Pass",
      "fixLine": "23p",

    },
    {
      "tarrifType": "Monthly plan",
      "fixLine": "3p",
    }
  ],
  "Australia": [
    {
      "tarrifType": "Pay as you go",
      "fixLine": "73p"
   },
    {
      "tarrifType": "Australia Pass",
      "fixLine": "49p",

    },
    {
      "tarrifType": "Monthly plan",
      "fixLine": "20p",

    }
  ],     
  "Nigeria": [
    {
      "tarrifType": "Pay as you go",
      "fixLine": "73p"
    },
    {
      "tarrifType": "Nigeria Pass",
      "fixLine": "49p"
    }
  ]
}
} ];

我正在读取对象并将其绑定到这样的模板

 var tableTemplate = $("#table-data").html();

 $("table.outer tbody").html(_.template( tableTemplate, {items:items} ));
我正在使用这个下划线模板

<script type="text/html" id='table-data'>
<% _.each(items,function(item,key,list){ %>
<tr>
    <td></td>
    <td><%- item.country %></td>
</tr>
<% }) %>
</script>

到目前为止,我没有得到任何错误,但模板渲染,但只显示[object object],所以我认为它几乎在那里。我尝试使用点符号(item.country),但我仍然需要解决如何循环并显示它。有什么想法吗?

改变

$("table.outer tbody").html(_.template( tableTemplate, {items:items} ));

也会改变

<td><%- item %></td>


项目只有一个属性:国家/地区。与其使用items调用模板,不如使用items.country调用它。因为循环中有密钥,所以可以在每次迭代中访问对象。每个对象还返回一个tarrifTypes数组等,因此您可能/可能不需要迭代这些类型

我也创造了。尽管它与uu)模板没有直接关系,但它仍然可以让您了解如何迭代JS对象


干杯,=]

谢谢您的回答。但它给了我以下错误-无法读取未定义的属性“0”
<td><%- item %></td>
<td><%- country[key].tarrifType %></td>