2015-05-30 2 views
2

У меня есть служба AngularJS в Typcript, которая вызывает вызов https get возвращает некоторые данные. Мои результаты - это дочерний объект response.data следующим образом: response.data.Result.Машинопись: AngularJS извлечения объекта результата

Как я могу получить к нему доступ? Я не могу сделать response.data.Result, так как получаю ошибку времени компиляции, когда response.data, определенный под IHttpPromiseCallbackArg<T>, не имеет свойства результата.

class ApplicationService implements IApplicationService { 
     private webApiUrl; 
     static $inject = ['$http']; 

     constructor(private $http: ng.IHttpService) { 
      this.webApiUrl = 'http://localhost'; 
      this.$http = $http; 
     } 

     getApplications(): ng.IPromise<IApplication[]> { 
      return this.$http.get(this.webApiUrl + '/api/applications') 
       .then((response: ng.IHttpPromiseCallbackArg<IApplication[]>): IApplication[]=> { 
       return <IApplication[]>response.data; 
      }); 
     } 
    } 
+0

Печать 'response'. Что он показывает? – softvar

ответ

3

После this.$http.get(this.webApiUrl + '/api/applications'), попробуйте изменить из ng.IHttpPromiseCallbackArg<IApplication[]> к { data: { Result: IApplication[] } } типа.

class ApplicationService implements IApplicationService { 
    private webApiUrl; 
    static $inject = ['$http']; 

    constructor(private $http: ng.IHttpService) { 
     this.webApiUrl = 'http://localhost'; 
     this.$http = $http; 
    } 

    getApplications(): ng.IPromise<IApplication[]> { 
     return this.$http.get(this.webApiUrl + '/api/applications') 
     .then((response: { data: { Result: IApplication[] } }): IApplication[]=> { 
      return response.data.Result; 
     }); 
    } 
} 
Смежные вопросы