Page 224 - AngularJS权威教程
P. 224
204 第 18 章 服务器通信
键,匹配到当前用户的email。
正如我们对属于用户的其他API做的那样,我们在UserService里面创建了一个方法,用于
查询数据库:
// ...
itemsForSale: function() {
var d = $q.defer();
service.currentUser().then(function(user) {
AWSService.dynamo({
params: {TableName: service.UserItemsTable}
}).then(function(table) {
table.query({
TableName: service.UserItemsTable,
KeyConditions: {
"User email": {
"ComparisonOperator": "EQ",
"AttributeValueList": [
{S: user.email}
]
}
}
}, function(err, data) {
var items = [];
if (data) {
angular.forEach(data.Items, function(item) {
items.push(JSON.parse(item.data.S));
});
d.resolve(items);
} else {
d.reject(err);
}
})
});
});
return d.promise;
},
// ...
在上面的查询中,KeyConditions和“User email”都是必选参数。
18.21 在 HTML 显示列表
为了在HTML中显示用户的图像,我们只是把新的itemsForSale()方法的返回值赋给控制器
作用域上的一个属性:
var getItemsForSale = function() {
UserService.itemsForSale()
.then(function(images) {
$scope.images = images;
});
}
// 初始加载用户列表
getItemsForSale();
现在我们可以轻松地使用ng-repeat指令迭代出列表中的项,如图18-17所示。