Цикл по массиву данных объекта в Falcor

Допустим, у меня есть следующие маршруты:

{
  route: "usersById['length']",
  get: function(pathSet) {}
},
{
  route: "usersById[{integers:ids}]['firstName', 'lastName']",
  get: function(pathSet) {}
}

Со следующим в моем контроллере angular1:

Model.get(
  'usersById.length',
  'usersById[0..2]['firstName', 'lastName']'
).then(function(response) {
  $scope.$apply(function() {
    vm.entities = response.json.usersById;
  });
});

Ответ от сервера будет выглядеть примерно так:

{
  jsonGraph: {
    usersById: {
      "0": {
        firstName: 'Jiminy',
        lastName: 'Cricket'
      },
      "1": {
        firstName: 'Jafar',
        lastName: 'Husain'
      },
      "length": 123123
    }
  }
}

В моем угловом 1 шаблоне я хочу просмотреть список пользователей:

<tr ng-repeat="entity in users.entities">
  <td>{{entity.firstName}} {{entity.lastName}}</td>
</tr>

Проблема в том, что в ответе присутствуют не только пользователи, во-первых, он содержит length и, во-вторых, кажется, что обещание модели возвращает другие метаданные, которые выглядят как часть данных пути: usersById

Каков предпочтительный способ просмотра списка пользователей? Должен ли я сделать что-то подобное в своем обещании?

vm.entities = response.json.usersById.filter(function(value) {
  return typeof value === 'object';
});

Я не вижу ни одного вызова API для получения необработанных значений нигде.

1 ответ

Решение

Итак, похоже, правильный способ справиться с этим - создать другой маршрут: users который просто возвращается usersById ссылки, таким образом, у вас есть массив только сущностей, не содержащий длины и т. д

Я предполагаю, что наличие данных пути в массиве данных было просто ошибкой.

{
    users: {...},
    usersById: {...}
}

<li ng-repeat="user in users">{{ user.firstName }}</li>
Другие вопросы по тегам