2014-11-06 3 views
1

Я задал этот вопрос раньше и нуждаюсь в дополнительной помощи.Backbone Collection get Object - Part 2

Вопрос: Backbone Collection get Object.

Моя проблема в том, что ответ возвращает только первый объект в массиве. Как я могу вернуть их все.

Довольно много, как бы я взять с собой:

{ 
    "id" : "section-one", 
    "href" : "section-one-baseball", 
    "divisions" : [ 
    { 
     "name": "Orioles", 
     "division" : "AL East" 
    } 
    ] 
} 

Что я тогда получил помощь будучи в состоянии получить название от подразделений, как это:

BaseballTeams.models[0].get("divisions.name") 

Теперь то, что мне нужно сделать, это уметь принимать несколько названий примерно так:

{ 
"id" : "section-one", 
"href" : "section-one-baseball", 
"divisions" : [ 
    { 
    "name": "Orioles", 
    "division" : "AL East" 
    }, 
    { 
    "name": "Yankees", 
    "division": "AL East" 
    ] 
} 

Так что вместо того, чтобы получить только первый, чтобы иметь возможность получить все из них.

Я получаю результаты, используя знак подчеркивания _.each, чтобы получить их.

Заранее спасибо за помощь

ответ

0

Я знаю, что это уже есть ответ, но только, чтобы добавить еще один вариант, подчеркивание имеет метод pluck именно для этого случая использования, где вы хотите, чтобы срывать атрибут из списка. вы указали ему список, а затем имя свойства, которое вы хотите извлечь. Затем он возвращает массив свойства из каждого элемента в списке.

divisions = [{ 
 
    name: "Orioles", 
 
    division: "AL East" 
 
    }, { 
 
    name: "Yankees", 
 
    division: "AL East" 
 
    } 
 
] 
 

 

 
divisionNames = _.pluck(divisions, "name"); 
 

 
console.log(divisionNames);
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore-min.js"></script>

+0

я должен был принять это. Это отлично работает, и как только я его использовал, он значительно облегчил получение того, что мне было нужно. Спасибо за публикацию даже после того, как был выбран ответ. – pertrai1

0

Так как вы пытаетесь получить несколько элементов в дивизиях, вы можете получить доступ к нему со следующим:

BaseballTeams.models[0].get("divisions")

С _.each, вы можете чтобы получить все элементы массива divisions, выполните некоторую функцию в этом конкретном элементе, однако _.each ничего не возвращает после завершения. То, что вы хотите использовать, - _.map, потому что это вернет новый массив того, что вы итерируете.

источник: Underscore.js - each & map

+0

Спасибо большое – pertrai1