2016-10-31 2 views
0

На стороне сервера моего проекта используется nodejs. Я использую https.createServer (опция, функция (req, res) {....}), и она работает.Как сделать угловой запрос 2 "https"

Клиентская сторона моего проекта использует угловые 2. Я знаю, что угловой 2 имеет http, но я хочу сделать угловой 2 использовать https-вызов для подключения к серверу. Я знаю, что решение использует this.http .get (https://url). Однако я не знаю, как использовать его в своем коде.

export class HttpDataService<T> extends DataService<T> { 
    protected _url: UrlType; 


    constructor(protected http: Http) { 
     super(); 
     this.fetch(); 
    } 

    this.http.get(url) 
      .map((res) => { 
       return res.json(); 
      }) 
      .catch((error: any) => { 
       console.log(error); 
       this._fetching = false; 
       return Observable.throw(error); 
      }) 
      .subscribe(data => { 
       this.setData(data); 
       this._fetching = false; 

       this._count++; 
       if ((this._count < 
         this._url.count) || 
        (this._url.count ==         
         **strong text**UrlTypeCount.Infinite)) 
        this.fetch(); 
      }); 


} 
+1

Похоже, что 'this.http.get (...)' находится за пределами конструктора. Вы не можете иметь произвольные выражения и выражения вне методов в TypeScript. В чем проблема с вашим кодом? Что не работает, как ожидалось? –

+0

Мой код может работать с помощью http. Тем не менее, я хочу использовать https, и я не знаю, как использовать его в angular2 !! @ GünterZöchbauer – justinlin

+0

Так что же не работает? Вы получили сообщение об ошибке? –

ответ

0

Вы должны поместить код в функцию. Тело вашего класса сейчас что-то вызывает, но это не должно. Например:

export class HttpDataService<T> extends DataService<T> { 
    protected _url: UrlType; 


    constructor(protected http: Http) { 
     super(); 
     this.fetch(); 
    } 

    getStuff() { 
     this.http.get(url) 
      .map((res) => { 
       return res.json(); 
      }) 
      .catch((error: any) => { 
       console.log(error); 
       this._fetching = false; 
       return Observable.throw(error); 
      }) 
      .subscribe(data => { 
       this.setData(data); 
       this._fetching = false; 

       this._count++; 
       if ((this._count < 
         this._url.count) || 
        (this._url.count ==         
         **strong text**UrlTypeCount.Infinite)) 
        this.fetch(); 
      }); 
     } 
} 
Смежные вопросы