這是一個基本的TypeScript / ES.next示例,該示例使用裝飾符進行DI并遵循框架手冊建議的語法:import {Component, Inject, Injectable, NgModule, OpaqueToken} from '@angular/core';import {BrowserModule} from '@angular/platform-browser';import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';const CONSTANT = { value: 'constant' };const CONSTANT_TOKEN = new OpaqueToken;const CONSTANT_PROVIDER = { provide: CONSTANT_TOKEN, useValue: CONSTANT };@Injectable()class Service { constructor(@Inject(CONSTANT_TOKEN) constant) { console.log('Service constructor', constant); }}@Component({ selector: 'app', template: '...', providers: [Service, CONSTANT_PROVIDER]})class AppComponent { constructor(@Inject(Service) service: Service, @Inject(CONSTANT_TOKEN) constant) { console.log('AppComponent constructor', service, constant); }}@NgModule({ imports: [BrowserModule], declarations: [AppComponent], bootstrap: [AppComponent]})class AppModule {}platformBrowserDynamic().bootstrapModule(AppModule);如何用ES5編寫?如何將同樣的事情在做untranspiled ES6 / ES2015?在這種情況下Injectable,Inject裝飾器如何翻譯?該問題尤其適用于具有類但可以使用require或System.import代替ES6導(dǎo)入的具有類的真實ES6瀏覽器實現(xiàn)。
ES5和ES6中的Angular 2依賴注入
慕哥9229398
2019-10-12 09:59:03