多くの投稿と Angular の公式ドキュメントを検索しましたが、Angular で実行されている AngularJS サービスを取得できません。最終的にこのページhttps://angular.io/api/upgrade/static/UpgradeModule#examplesにたどり着きました。これは、必要なものを正確に説明しているように見えますが、これらすべての手順を実行すると、次のようになります。
エラー エラー: AngularJS インジェクターを設定する前に取得しようとしています。
私の印象では、この例は完全ではありません。たとえば、(古い) AngularJS フレームワークをロードする必要があるというヒントはありません。私のサービスはこのように定義する必要があるように見えます。そうしないと、エラーが発生しangular.module('my-module').service('my-service', ...ます。angularさらに、多くの例では、AngularJS コードが TypeScript で記述されていることを前提としています。私の場合、これは正しくありません (単なる Javascript です)。
残念ながら、Angular 9 には、モジュールに関する追加の問題があり@angular/upgradeます。これはどこにも記載されておらず、新しい Ivy コンパイラを無効にすることによってのみ解決できますtsconfig.app.json。そうしないと、コンパイラは次のようにスローしError: Error on worker #1: Error: getInternalNameOfClass() called on a non-ES5 class: expected UpgradeComponent to have an inner class declarationます。
"angularCompilerOptions": {
"enableIvy": false
}
AngularコンポーネントでAngularJSサービスを実行するために正確に何をしなければならないかについて、誰かが完全な例を投稿できれば本当にありがたいです.
更新 [2020 年 7 月 6 日]
https://github.com/berkon/angularjs-service-upgrade-testで、動作を再現するために複製できる GitHub リポジトリを見つけることができます。また、私は Electron フレームワークを使用しており、このレポhttps://github.com/maximegris/angular-electronに基づいて開始したことにも言及する必要がありますが、この場合は問題にならないと思います。