- 履歴一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- はじめてのAngular2/Injectableを作る・利用する へ行く。
- 1 (2016-07-10 (日) 09:52:04)
- 2 (2016-07-10 (日) 09:53:08)
- 3 (2016-07-11 (月) 09:16:28)
- 4 (2016-07-11 (月) 12:46:10)
Injectableってなに†
Angular2でDIするときのinjectする要素。
Injectableを作る†
- @Injectable(メタデータ)をつけて(多段Injectでなければ要らない?)
@Injectable()
- classをexportする
export class MyService{ loadData(): string[] { return ['hoge', 'moge', 'fuga']; } }
@Injectableというメタデータを書くだけです。
Injectableを利用(Inject)する†
- exportしたクラスをimportして
import {MyService} from './my.service';
- メタデータのprividersに追加して
@Component({ ... providers: [MyService] })
- constructorの引数にする
export class AppComponent{ private list: string[]; constructor(private myService: MyService) { this.list = myService.loadData(); } }
コンストラクタの引数にするだけでDIされますが、この記述はInjectを省略しているだけのようです。また、providersにProviderを与えずにMyServiceを与えているのも省略した書き方です(参考記事を見てね)。