繁体   English   中英

是否可以将 Angular 2+ 服务(`@Injectable()`)注入 AngularJS controller?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM