2016-11-30 1 views
0

Je développe l'application angulaire 2, dans mon projet actuel j'ai implémenté la fonctionnalité pour http get demande à mon contrôleur api de la classe de service (fichier tapuscrit) .comment faire http obtenir la requête au contrôleur api et stocke le résultat dans une propriété en utilisant tapuscrit

C'est le code que j'ai écrit dans mon fichier service.ts.

getTodoListApiUrl(): Observable<any>{ 

    return this.todoListAPIUrl = this._http.get(this._UploadControllerUrl) 
     .map((response: Response) => <Observable<any>>response.json()) 
     .do(data => console.log('todoListAPIUrl :' + JSON.stringify(data))) 
     .catch(this.handleError); 


} 

après exécuter la méthode ci-dessus, je suis en train d'utiliser this.todoListAPIUrl mais il donne toujours la valeur comme non définie. Assurez-vous que la méthode ci-dessus donne une URL à partir de mon contrôleur api.

Dites-moi comment stocker les résultats dans un fichier de type tapuscrit.

-Pradeep

Répondre

0

Essayez cela fonctionne bien pour moi

Dans votre service.ts

private localvarUrl = 'url to data' 

getDataFromHttp(): Promise<Class[]> { 
     return this.http.get(this.localvarUrl) 
      .toPromise() 
      .then(response => response.json() as Class[]) 
      .catch(this.handleError); 
    } 

private handleError(error: any): Promise<any> { 
     console.error('An error occurred', error); 
     return Promise.reject(error.message || error); 
    } 

Dans votre appel composant cette méthode qui

première importation ton service. Après Créer une variable locale pour stocker les données du service. Dans le constructeur déclare un var local pour le service, je suis met en œuvre OnInit sur le composant, un résultat est

import { Component, OnInit } from '@angular/core'; 
import { Router } from '@angular/router'; 

//Services 
import { NameService } from './name.service'; 

@Component({ 
    moduleId: module.id, 
    selector: 'selector-name', 
    templateUrl: 'name.component.html' 
}) 

export class MyComponent implements OnInit { 
    local_var: class[] = [] //declare this as your class (you must import them) or any 

    constructor(private myService: NameService) {} 

    ngOnInit(): void { 
     this.myService.getDataFromHttp().then(response => this.mis_servicios = response) 
    } 
} 

Sur votre mode HTML

*ngFor="let local of local_var" 
+0

Désolé dans cette ligne y ont une erreur ' this.myService.getDataFromHttp(). then (réponse => this.mis_servicios = réponse) '. CHANGER pour this 'this.myService.getDataFromHttp(). Then (réponse => this.local_var = réponse)' –

+0

Je fais aussi la même chose fonctionne très bien mais je veux la valeur de la local_var dans le service.ts, s'il vous plaît dites-moi comment fais ça. – pradeep

+0

'response => this.local_var = réponse' ce code assigne la valeur' response' à 'local_var', et vous pouvez utiliser dans une autre ligne avec l'opérateur' this' comme ceci 'this.local_var' –