私たちはサービスを使用して、コード行数と開発時間を最小限に抑えます。
angle-cliコマンドを使用して別のサービスを作成しますng g s Get
これは新しいサービスを作成しますが、このようにapp.module.tsのプロバイダとして追加する必要があります。
か、anular-CLIを使用していない場合は、ファイルget.service.tsファイルを作成し、これらのステップ
チェック私が作ったこのサンプルアプリケーションに従ってください。
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component';
import { GetService } from './get.service';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [GetService],
bootstrap: [AppComponent]
})
export class AppModule { }
は
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
@Injectable()
export class GetService {
constructor(private http: Http) { }
getData() {
this.http.get('https://jsonplaceholder.typicode.com/posts').map(m => m.json()
).subscribe(k => { console.log(k) }); // we have to subscribe for get data out
}
}
app.component.tsは、このようにする必要がありget.service.tsにしてこれらのコードを追加します。
import { Component,Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { GetService } from './get.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'app works!';
constructor(private _service : GetService){
this._service.getData();
}
}
はあなたがサービスは角度依存性注入を使用して再利用可能であることを意味しているとして、コンポーネントにそれを使用して直接サービスの利用の代わりをしなければならないサービス
here
ブラウザでコンソールログを確認してくださいがありますか? – Djamware
@Djamwareはい、エラーはありません –
あなたのコンポーネントとモジュールコードを更新してください。 AppComponentをComponentとInjectableの両方として動作させたい場合 – Aravind