Javascript 尝试在Angular2中以HTML呈现JSON
我试图将从后端返回的JSON呈现到HTMLJavascript 尝试在Angular2中以HTML呈现JSON,javascript,json,angular,Javascript,Json,Angular,我试图将从后端返回的JSON呈现到HTML{{object.x},我在共享服务中使用行为主题,在共享服务中调用我试图呈现的列表的API端点 public storesChanged = new BehaviorSubject([]); public getStores(): void { this.retrieveResults().subscribe((results) => { this.storesChanged.next(results.Results)
{{object.x}
,我在共享服务中使用行为主题
,在共享服务中调用我试图呈现的列表的API端点
public storesChanged = new BehaviorSubject([]);
public getStores(): void {
this.retrieveResults().subscribe((results) => {
this.storesChanged.next(results.Results)
console.log('Name >> ', results.Results[0].Name) // this shows me the Name
});
}
public retrieveResults(): Observable<any> {
return this.http.get('/api/Stores/Summary')
.map(res => res.json())
}
这是我试图在HTML{{currentStore.Name}
中呈现的对象,但是它返回了一个错误无法读取未定义的属性“Name”
{
'Id': 1,
'Name': 'Eastleigh'
}
我很困惑,当属性在对象中时,为什么它返回未定义的'Name'。有人能指出原因吗。由于您的currentStore
对象是异步接收的,您可以像这样使用“elvis”操作符
{{ currentStore?.Name }}
“elvis”或安全导航操作员将检查您的对象是否为空/未定义。定义后,angular将尝试访问您选择的属性(名称)
来源:{{currentSore.Name}}
->{{currentStore.Name}}
您有一个输入错误是的,对不起,这是我自己的输入错误,在键入此问题时您尝试过elvis操作符吗{{currentStore?.Name}
@echonax这是怎么回事,但不确定elvis操作符是什么?介意给我一个小小的解释吗?猫王运营商警惕“找不到财产”。如果“名称”在currentStore上不存在,它将停止尝试评估它(以及随后的任何其他道具),从而使您免于可怕的错误。通过这种方式,当“name”最终可用时,您将得到您期望的结果。谢谢听起来像是一个方便的操作员来进行检查。@MrNew当您在angular2中处理异步操作时,它确实让您的生活更轻松:-)嗨,关于这一点,还有一个问题,我知道它是旧的。既然它显示了storeName,不知何故它并不总是更新{{currentStore?.Name}}
,有时我必须刷新页面才能更新它。@MrNew-Hmm,在没有看到用例的情况下不能说任何事情。可能您在控制台中遇到错误?你能提出一个新问题来阐述这个问题吗?我提出了一个新问题
{{ currentStore?.Name }}