【问题标题】:Angular2 http json requestAngular2 http json 请求
【发布时间】:2016-10-25 23:27:16
【问题描述】:

我正在测试 angular2 并尝试从 restful 服务中检索数据。

我的服务是这样的:

import {Injectable} from '@angular/core';
import {Http, Response} from '@angular/http';
import {annuaireModel} from '../../models/annuaireModel';
import {Observable} from 'rxjs/Observable';
import 'rxjs/Rx';

@Injectable()
export class annuaireService {

    constructor(private _http: Http) { };

    getAnnuaire( codeRne : string) {

            var url = 'http://192.168.40.30/api/editionsstandardsAPI/lireannuaire?codeEtablissement=' + codeRne ;
      return this._http.get(url).map(res => <annuaireModel>res.json()).catch(this.gestErreur);
    }

    gestErreur(error: Response ) {
      console.error(error);
      return Observable.throw(error.json() || 'Erreur serveur');
    }
    /*getHero(id: number) {
        return Promise.resolve(HEROES).then(heroes => heroes.filter(hero => hero.id === id)[0]);
    }*/
}

我的组件:

import {Component} from '@angular/core';
import {HTTP_PROVIDERS} from '@angular/http';
import {annuaireService} from './annuaireService';
import {annuaireModel} from '../../models/annuaireModel';

@Component({
    templateUrl: 'app/editionsStandards/annuaire/annuaire.html',
    selector: 'annuaire',
  directives: [],
    providers: [HTTP_PROVIDERS,annuaireService]
})

export class annuaireComponent {

        annuaire : annuaireModel;
        variableTest : string;

    constructor( private _annuaireService :annuaireService) { }

    ngOnInit() {

        }

        chargerAnnuaire() {
            this._annuaireService.getAnnuaire('7508987231').subscribe(
                            data =>
                            {this.annuaire = data}  ,
                            error => alert(error),
                            () => console.log('OK')
                        );


    }
}

我的html:

<h1>Annuaire</h1>
<button (click)="chargerAnnuaire()" type="button">test</button>
<div >
  {{annuaire.entete.raisonSociale}}
</div>

当我启动网站时,我有这个错误:

cannot read the property entente of undefined.

我已经测试了我的 restful 服务,它确实返回了 goo json ....

帮助!我无法弄清楚我做错了什么。谢谢

【问题讨论】:

    标签: angular wcf-rest


    【解决方案1】:

    试试Elvis运营商?.

    {{ annuaire?.entete.raisonSociale }}
    

    如果annuairefalsy(未定义、null 等),它将无法访问entete 成员。

    【讨论】:

    • 对于entete,您可能还需要Elvis 运算符。
    • 你完全正确!我写了这个:{{annuaire?.entete?.raisonSociale}},它工作正常。我已经尝试过 elvis 运算符,但在第一个元素上也没有在第二个元素上。非常感谢安德烈
    猜你喜欢
    • 2015-11-12
    • 1970-01-01
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    • 2017-03-10
    • 2016-10-15
    • 2016-05-14
    • 2017-03-12
    相关资源
    最近更新 更多