В настоящее время я следую инструкциям по переносу приложения AngularJS (1.5.x) на гибрид AngularJS / Angular 8. Было решено, что мы пока не будем использовать TypeScript и будем придерживаться JavaScript, транслируемого с Babel. Кажется, я ничего не могу найти о внедрении зависимостей в Angular без TypeScript.
app.module.js
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { UpgradeModule } from '@angular/upgrade/static';
import AppComponent from './app.component';
import angularJsModule from '../app/scripts/app';
@NgModule({
imports: [
BrowserModule,
UpgradeModule
]
})
export default class AppModule {
constructor(upgrade) {
console.log('angular 8 plz?');
}
ngDoBootstrap() {
this.upgrade.bootstrap(document.body, [angularJsModule.name], { strictDi: true });
}
}
При запуске приложения я получаю Uncaught Ошибка: не удается разрешить все параметры для AppModule: (?).
Я полагаю, это потому, что UpgradeModule не вводится из-за отсутствия TypeScript? https://angular.io/guide/dependency-injection#dependency-injection-tokens
Я пытался установить this.upgrade = upgrade
внутри конструктора, но это никогда не достигается, потому что Angular не знает, что такое upgrade
.
Есть ли способ внедрить UpgradeModule без TypeScript?
Или это ошибка, с которой я сталкиваюсь из-за чего-то другого?