[英]Is it possible to inject an Angular 2+ service (`@Injectable()`) into an AngularJS controller?
我正在开发 Angular10/AngularJS 混合应用程序,想知道是否可以将 Angular 10 服务注入现有的 AngularJS controller。
我尝试将我的服务(使用@Injectable()
创建)注入我的一个控制器,但出现错误:
Error: [$injector:unpr] Unknown provider: MyServiceProvider <- MyService <- FormsController
https://errors.angularjs.org/1.8.0/$injector/unpr?p0=MyServiceProvider%20%3C-%20MyService%20%3C-%20MyController
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 组件中没有问题。
没有。 这在我看来是不可行的。
Angular JS 用于工厂方法架构,Angular 2+ 用于依赖注入。 Angular 2 以后的情况完全不同。 前者使用普通 JS 和通过工厂方法涂覆的控制器,但后者是具有丰富功能的 typescript 子集。
两个应用程序都需要 2 种不同的方法(显然具有相同的逻辑)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.