2015-10-05 2 views
0

Итак, вот мои данные JSON;Как отобразить связанные данные JSON вместе в шаблоне backbone.js .eco

{ 
     "team_name": "New Team!", 
     "user_name": "hey_user", 
     "games": [] 
    }, 
    { 
     "team_name": "New Team!", 
     "user_name": "testing_user", 
     "games": [] 
    }, 
    { 
     "team_name": "Another Cool Team!", 
     "user_name": "test_user_2", 
     "games": [] 
    } 

Я добавляю это в шаблон .eco:

<% for person in @persons: %> 
    <%= person.team_name %>  
    <%= person.user_name %> <br /> <br /> 
<% end %> 

, который выводит это:

New Team! hey_user 
New Team! testing_user 

Но я хочу, чтобы выход:

New Team! hey_user, testing_user, etc. 

Таким образом, название команды не будет отображаться для каждого нового пользователя, если t имеет смысл. Лучший способ добиться этого?

+0

@Brandon Я пробовал различные подходы, но они либо не работают (я получаю сообщение об ошибке), либо они не кажутся возможными для того, что я хочу. Я играл с индексированием, но я не могу обернуть вокруг себя. Благодарю. –

+0

Это поможет другим пользователям показать, что вы пробовали, но похоже, что вы хотите отформатировать объекты перед их отправкой в ​​шаблон, чтобы устранить дублирование, а не вкладывать много сложной логики в свой шаблон. – Brandon

+0

@brandon да, может быть, нет хорошего способа сделать это в шаблоне ... мои подходы смущающе плохо. Я буду держать плагин на нем. Но, я думаю, что это, возможно, придется решать в моих API-интерфейсах или в моих моделях или обоих ... –

ответ

0

Если я правильно понимаю, вы хотите группировать пользователей по командам. Вы можете использовать groupBy метод Underscore в

var groups = _.groupBy(json, 'team'); 

Это даст вам что-то вроде этого:

{ 
    "New Team!": [ 
     { 
      "team_name": "New Team!", 
      "user_name": "hey_user", 
      "games": [] 
     }, 
     { 
      "team_name": "New Team!", 
      "user_name": "testing_user", 
      "games": [] 
     } 
    ], 
    "Another Cool Team!": [ 
     ... 
    ] 
} 

Затем вы можете передать это шаблон, итерацию над ним и печать команды, а затем перебрать внутренний массив пользователей , Если вам нужен массив вместо хэша, вы можете запустить pairs над ним.

Смежные вопросы