模板句柄JSON中的AngularJS2
我可以处理来自模板的JSON,处理方式与我输入的第二个代码类似模板句柄JSON中的AngularJS2,json,typescript,angular,Json,Typescript,Angular,我可以处理来自模板的JSON,处理方式与我输入的第二个代码类似 第一个代码 当使用.json[]并使用.map() 但是我得到的答案不是.json中的[]。显示警报,可以使用users.name、警报(this.users.name)但我无法从模板{{users.name}获取未定义属性来处理它 ->找不到第二个代码 @Component({ ..// template: `..// JSON: {{ users.name }} ..//`
第一个代码 当使用
.json
[]并使用.map()
但是我得到的答案不是
.json
中的[]。显示警报,可以使用users.name、警报(this.users.name)代码>但我无法从模板{{users.name}获取未定义属性来处理它
->找不到第二个代码
@Component({
..//
template: `..//
JSON: {{ users.name }}
..//`
get(){
this.http.get('lib/sampleResAPI.json')
//.map(res => res.json())
.subscribe(users => this.users = users.json());
//this.u = JSON.parse(this.users);
alert(this.users.name);
..//
}
SampleSapi.json不是[]
有一种方法可以处理.json
,类似于警报、模板中的user.name
,或者我做错了什么,就是这样。试试看
JSON: {{ user?.name }}
要覆盖设置用户
之前的时间我不确定是否理解该问题。您能否为我们提供JSON管道操作符的每个用例的用户
结果的内容:
@Component({
..//
template: `..//
JSON: {{ users | json }}
`
})
users.name
应该总是返回undefined
,因为name
是数组中元素的属性,而不是数组本身…哦,我的好朋友,我已经尝试了数百种语法,但没有任何结果,您的答案很好,谢谢您是Elvis操作符还是安全导航操作符。仅当用户
为!=空/未定义。您不能在任何地方使用它(user?[x]
例如不受支持。为此,您需要user?user[x]:null
非常感谢您的解释。我不完全理解您的注释。当您绑定到的字段已在构造函数中设置时(可能只是默认值)您不需要?。
,因为Angulars第一次尝试建立绑定之前已经有一个值。但是当user
暂时为空并且只有当HTTP请求最终返回一个值分配给user
时,Angular在尝试从user
读取.name
时失败,这是stillnull
并抛出一个异常。是的,它不会在没有值的情况下创建该标记。感谢您的时间,我一直在寻找@GünterZöchbauer的响应。
{
"id": 362,
"name": "test",
..//
}
JSON: {{ user?.name }}
@Component({
..//
template: `..//
JSON: {{ users | json }}
`
})