模板句柄JSON中的AngularJS2

模板句柄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,处理方式与我输入的第二个代码类似


第一个代码

当使用
.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
时失败,这是still
null
并抛出一个异常。是的,它不会在没有值的情况下创建该标记。感谢您的时间,我一直在寻找@GünterZöchbauer的响应。
{
  "id": 362,
  "name": "test",
..//
}
JSON: {{ user?.name }}
@Component({
  ..//
  template: `..//
    JSON: {{ users | json }}
  `
})