Как выполнить http-вызов в angular2

http angular typescript

242 просмотра

1 ответ

Я пытаюсь получить детали для редактирования, но я не уверен, как это сделать с помощью наблюдаемых, может кто-нибудь помочь мне, проблема с функцией редактирования.

    @Component({
        selector: 'Search',
         templateUrl:  './components/search/search.html',
       directives: [REACTIVE_FORM_DIRECTIVES],
        providers : [GetSocietyList],

   })

       export class Search {
         property:any = 'Add';
         data: string;
         form:any;
         prop: string = 'connenct';
         details: IStudent1[];
         details1: IStudent2[];

     constructor(fbld: FormBuilder,public http: Http,private _profileservice:GetSocietyList) {
    this.details = [];
    this.http = http;
    this._profileservice.getSocietyList()
        .subscribe(details => this.details = details);
        console.log(this.details);
    this.form = fbld.group({
        name: [''],
        age: ['', Validators.required],
        class: ['', Validators.required],
        grade: ['', Validators.required]

    });

  }

   edit(id): any {
    //console.log(id);
    this.property = 'update';
    var headers = new Headers();
    headers.append('Content-Type', 'application/x-www-form-urlencoded')
    this.http.get('http://localhost/a2server/index.php/profile/editprofiledb/' + id, { headers: headers })
        .subscribe(response => {
            if (response.json().error_code == 0) {
                this.details = <IStudent2[]>response.json().data;

            } else {
                this.details = <IStudent2[]>response.json().data;


        }

  }      )}

Я пытаюсь получить детали для редактирования, но я не уверен, как это сделать с помощью наблюдаемых, может кто-нибудь помочь мне, проблема с функцией редактирования.

Автор: MMR Источник Размещён: 08.11.2019 11:18

Ответы (1)


1 плюс

this._profileservice.getSocietyList()
    .subscribe(details => this.details = details);
    console.log(this.details);

это всегда будет регистрироваться, undefinedпотому что вы регистрируетесь сразу после подписки на наблюдаемое. Вам нужно дождаться окончания запроса, чтобы увидеть данные:

this._profileservice.getSocietyList()
    .subscribe(details => {
      this.details = details;
      console.log(this.details);
    });

Таким образом, ваша выборка данных, скорее всего, работает, вы просто пытаетесь записать это слишком охотно.

Автор: j2L4e Размещён: 20.08.2016 03:15
Вопросы из категории :
32x32