我正在開發一個 Angular10/AngularJS 混合應用程式,想知道是否可以將 Angular 10 服務注入現有的 AngularJS 控制器。
我嘗試將我的服務(使用創建的@Injectable())注入我的一個控制器,但出現錯誤:
Error: [$injector:unpr] Unknown provider: MyServiceProvider <- MyService <- FormsController
https://errors.angularjs.org/1.8.0/$injector/unpr?p0=MyServiceProvider%20<- MyService%20<- MyController
at eval (angular.js?9656:138:1)
at eval (angular.js?9656:4991:1)
at Object.getService [as get] (angular.js?9656:5151:1)
at eval (angular.js?9656:4996:1)
at getService (angular.js?9656:5151:1)
at injectionArgs (angular.js?9656:5176:1)
at Object.instantiate (angular.js?9656:5220:1)
at $controller (angular.js?9656:11787:1)
at Object.eval (viewDirective.js?8384:320:1)
at eval (angular.js?9656:1391:1)
我確實為混合應用程式使用 app.module.ts 進行了適當的設定,并且將舊的 AngularJS 服務注入到較新的 Angular 10 組件中沒有問題。
uj5u.com熱心網友回復:
沒有。這在我看來是不可行的。
Angular JS 致力于工廠方法架構,Angular 2 致力于依賴注入。從 Angular 2 開始,情況就完全不同了。前者使用帶有工廠方法涂層的控制器的普通 JS,但后者是具有豐富功能的打字稿子集。
兩個應用程式都需要 2 種不同的方法(顯然具有相同的邏輯)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/510025.html
上一篇:如何為repartitionByCassandraReplica.JoinWIthCassandraTable()與DirectJoin=AlwaysOn計算輸入大小?
