javascript - 使用下划线循环遍历集合

标签 javascript templates underscore.js

我不知道我在这个模板中做错了什么。

这是我的数据:

  var movies = [
  {
    "title": "The Matrix",
    "characters": ['neo', 'trinity', 'morpheous', 'agent smith'],
    "year": 2001
  },
  {
    "title": "The Simpsons Movie",
    "characters": ['homer', 'marge', 'bart', 'lisa', 'maggie'],
    "year": 20010
  }
];

这是我的模板:

<script id="template" type="template/underscore">
<% _.each(movies, function (movie) { %>
  <h1><%-title%></h1>
  <ul>
    <% _.each(characters, function(name) { %>
      <li><%-name%></li>
    <% }); %>
  </ul>
  <p><%-year%></p>
<% }); %>
</script>

这是编译:

var template = $.trim( $('#template').html() );
var content = _.template(template, movies);
console.log(content);

我收到错误:电影未定义。任何帮助都会很棒!

最佳答案

模板正在您的参数中查找关键“电影”,但没有找到!您需要将 movies 包装在 context/params var 中,例如:

var content = _.template(template, {movies: movies});

关于javascript - 使用下划线循环遍历集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9953344/

相关文章:

backbone.js - 主干/下划线 uniqueId() 奇数

javascript - 悬停颜色叠加 : jquery mosaic plugin

javascript - 通过每个索引对象值从多维数组创建数组

javascript - 自定义 AJAX 用户控制 JavaScript 构造函数 "element"未定义

c++ - 隐藏成员模板的模板参数

javascript - 主干网未获取我的 JSON

javascript - 带有 $http 注入(inject)的 angularjs 自定义模块

javascript - AngularJS 将变量分配给 View 的范围

C++ 将模板类型作为参数传递给错误

javascript - 使用 Django 的下划线/ Backbone 模板