在 Falcor 中循环遍历对象数据数组
Looping through array of object data within 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
}
}
}
在我的 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 请求获取原始值。
好的,看来处理这个问题的正确方法是创建另一条路线:users
只是 returns usersById
引用,这样你就有了一个实体数组,不包含长度等
我猜数据数组中有路径数据只是一个错误。
{
users: {...},
usersById: {...}
}
<li ng-repeat="user in users">{{ user.firstName }}</li>
假设我有以下路线:
{
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 请求获取原始值。
好的,看来处理这个问题的正确方法是创建另一条路线:users
只是 returns usersById
引用,这样你就有了一个实体数组,不包含长度等
我猜数据数组中有路径数据只是一个错误。
{
users: {...},
usersById: {...}
}
<li ng-repeat="user in users">{{ user.firstName }}</li>