Im немного застрял, я использую backbone.js, код ниже возвращает массив моделей, см. Изображение ниже.Доступ к массиву моделей?
//The array of objects
var teamPlayers = this.players.where({team_id: team.get('id')})
players
- это коллекция. Вместо того, чтобы говорить this.players.each(function(models){ //code here })
Я хочу сказать что-то вроде teamPlayers.each(function(models){ //code here })
. Так что я могу связать две коллекцию соответствия я могу сделать их идентификаторы
это успешно внутри шаблона, но мне нужно, чтобы отделить свои взгляды команды из моих взглядов игроков затем вынести его на виде приложения.
Вот шаблон, который я пытаюсь достичь такого результата.
<script type="text/template" id="allTemplate">
<% _.each(teams, function(team) { %>
<div class="<%= team.name %>">
<h1><%= team.name %></h1>
<% var teamPlayers = _.where(players, {team_id: team.id}) %>
<% _.each(teamPlayers, function(player) { %>
<li> <%= player.name %> </li>
<% }); %>
</div>
<% }); %>
</script>
Так что я пытаюсь преобразовать этот шаблон в javascript, чтобы я мог сделать это для каждого на вид.
Extra: здесь является то, что код каждой коллекции выглядит
this.teams.each(function(team) {
var teamView = new TeamView({ model: team });
var teamHtml = teamView.render().el;
this.$el.append(teamHtml);
var teamPlayers = this.players.where({team_id: team.get('id')})
console.log(teamPlayers)
this.players.each(function(player) {
var playerView = new PlayerView({ model: player });
var playerHtml = playerView.render().el;
this.$el.append(playerHtml);
console.log(player.toJSON());
}, this);
}, this);
Edit: Я просто хотел бы добавить, я наткнулся на этом Backbone.js Uncaught TypeError: Object [object Array] has no method 'on' это своего рода имеет смысл, но я не могу понять, как применить это ответ на мой проект и то, как я создал свою модель.
Ого, спасибо чувак! Я принял «this.players.each» из учебника. Это сработало, удивительно, как одна мелочь может выбросить все ваше приложение. –