angular - Angular 6 可观察和订阅
问题描述
我有一些来自 REST API 的角度服务数据
信息服务.ts
getCustomerDetails() {
this.http.get(this.localUrl + this.customerUrl + this.options).pipe(map((response: Response) => response.json()))
}
我的主页.ts
getData(){
this.infoServices.getCustomerDetails().subscribe(data=>{
if(data) {
this.name = data[0].customerInfo.name;
}
})
}
和我的 home.html
<input type="text" value="{{this.name}}" formControlName="name" />
我的问题是有没有更好的方法来获取数据而不是做数据[0]?
端点:
router.post("/request/customer", (req, res) => {
var pendingRequest = new Customer({
name: req.body.name,
age: req.body.age,
isNewCustomer: true,
requestInfo: {
customerType: req.body.customerType,
sendTo: {
email: req.body.sendTo_email,
company: req.body.sendTo_company
},
returnTo: {
email: req.body.returnTo_email,
company: req.body.returnTo_company
}
},
});
pendingRequest
.save()
.then(result => {
console.log(result);
res.status(200).json({
message: "Handling POST request to /pending",
createdRequest: result
});
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
});
});
解决方案
您可以在您的服务中使用地图功能:
this.http.get(url).pipe(map((response: Response) => response[0])
这样,当您订阅 observabla 时,检索到的日期将直接可用
您还需要创建一个定义响应结构的接口,以便您可以轻松地操作对象
推荐阅读
- python - 如何使用 Odoo 9 中 ORM API 的 search() 方法根据创建记录日期获取模型的最新记录?
- ruby-on-rails - 双has_many关联只返回第二个关联之一
- daterangepicker - Daterangepicker 最小日期
- css - 伪选择器:主机未“编译”
- javascript - 如何在输入字段中填充所选选项
- python - 无法从 Heroku 上的 Django 连接到 SQL Server
- dataframe - 按时间戳绘制具有排序的 DataFrame 字段的多行
- c++ - 在静态库中存储线程 ID 的正确方法
- drupal - 如何在 Drupal 8 中使用 composer 安装自定义模块及其依赖项
- angular - 使用对象数组中的 Angular 材质树时超出最大调用堆栈大小