2016-02-13 57 views
1

我可以从模板中处理JSON,类似于我放置的第二个代码?AngularJS2模板句柄JSON


第一代码。

这种运作良好当它被用来.json[]和使用.map()

@Component({ 
..// 
template: `..// 
      <li *ngFor="#user of users"> 
      JSON: {{ user.name }} 

      ..//` 


    get(){ 

    this.http.get('lib/sampleResAPI.json') 
    .map(res => res.json()) 
    .subscribe(users => this.users = users); 
    ..// 
    } 

sampleResAPI.json(使用[] []

[ 
{ 
    "id": 362, 
    "name": "test", 
..// 
} 
] 

但我收到的答案不是[.json]中的[]。警报显示,罚款与users.name,alert(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); 
    ..// 
    } 

sampleResAPI.json不[]

{ 
    "id": 362, 
    "name": "test", 
..// 
} 

有办法处理.json,类似于警报user.name,在模板中,或者我做错了什么,就是这样。

回答

2

尝试

JSON: {{ user?.name }} 

涵盖的时间user设置

+0

哦,我的好人,我已经尝试了数百个没有任何结果的语法,您的答案很好,谢谢 –

+1

这是猫王操作员或安全导航操作员。只有当'user'为!= null/undefined时,它才会评估'.name'。你不能在任何地方使用它(例如'user?[x]'不支持。为此,你需要'user?user [x]:null' –

+0

非常感谢解释 –

0

之前,我不知道理解这个问题。你能不能给我们users结果为每个用例与JSON管道运营商的内容:

@Component({ 
    ..// 
    template: `..// 
    JSON: {{ users | json }} 
    ` 
}) 

users.name应始终返回,因为nameundefined是数组不是数组本身的元素的属性..

+0

感谢您的回复@GünterZöchbauer,我正在寻找。 –