Показать сообщение отдельно
  #12 (permalink)  
Старый 27.07.2017, 14:19
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Цитата:
класс которого запрятан внутри Ангуляра
Не понимаю о чем вы. Это же Open Source. Никто никуда ничего не прятал. А всё дело в том, что HttpHandler это некий абстрактный класс (а создавать напрямую объекты абстрактного класса нельзя) с абстрактным методом handle. И этот самый метод реализуется в унаследованном классе - HttpXhrBackend

Цитата:
Как заставить это работать
import {HttpClient,  HttpXhrBackend, XhrFactory} from '@angular/common/http';

class BrowserXhr implements XhrFactory {
  constructor() {}
  build(): any { return <any>(new XMLHttpRequest()); }
}

@Component({
  selector: 'app',
  templateUrl: './app.component.html'
})
export class AppComponent implements OnInit {
  getData(){
    return new HttpClient(new HttpXhrBackend(new BrowserXhr())).get('/url').subscribe();
  }

https://plnkr.co/edit/ifwNLrlNUu2s39Dfqk70?p=preview
Цитата:
и почему это работает, если использовать HttpClient стандартно через this компонента?
Ну очевидно же, что разработчики ангуляра сделали всё за вас.
Ответить с цитированием