循环遍历 Falcor 中的对象数据数组

Posted

技术标签:

【中文标题】循环遍历 Falcor 中的对象数据数组【英文标题】:Looping through array of object data within Falcor 【发布时间】:2016-01-02 10:14:45 【问题描述】:

假设我有以下路线:


  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
    
  

在我的 angular 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>

【讨论】:

以上是关于循环遍历 Falcor 中的对象数据数组的主要内容,如果未能解决你的问题,请参考以下文章

在javascript中循环遍历数组中的对象

通过使用按钮设置状态来循环遍历数组中的对象 React

JS -javascript 数组遍历的几种方式,数组或对象循环遍历的对比分析,性能使用合理使用

37 掌握v-for遍历数组和对象

循环遍历 D3 中的数组数组

js的Dom对象集合循环遍历过程中数组长度发生变化,小白不懂,求大神指教