перебрать коллекцию с подчеркиванием - PullRequest
2 голосов
/ 31 марта 2012

Я не могу понять, что я делаю неправильно в этом шаблоне.

Вот мои данные:

  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);

Я получаю сообщение об ошибке: фильмы не определены. Любая помощь будет потрясающей!

Ответы [ 2 ]

2 голосов
/ 31 марта 2012

Шаблон ищет ключевые «фильмы» в ваших параметрах, но не находит их!Вам нужно обернуть movies в переменную context / params, например:

var content = _.template(template, {movies: movies});
1 голос
/ 31 марта 2012

Шаблон не может "видеть" тот факт, что ваша контекстная переменная называется "movies". Вам необходимо передать объект с фактическим свойством с именем "movies".

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