我们正在运行从angular js到angular 10的混合升级。
我有一个升级到angular的服务。然后我将其降级为注入到现有的angular JS服务中(我们有很多,所以我们需要零碎地做(。
我发现:https://angular.io/guide/upgrade#upgrading-电话服务
然而,这涉及到注入组件,而不是角度服务。长话短说,我得到了"未知提供者";错误
我需要帮助降级服务,并将它们注入现有的angular服务中。
感谢
我们是如何做到的:
- 在Angular x中创建一个服务,用
@Injectable
装饰它(我们使用了@Injectable({ providedIn: "root" })
( - 有一个专门的AngularJS模块(我们称之为
downgraded.module
(,并有以下代码:
import { downgradeInjectable } from "@angular/upgrade/static";
angular
.module("downgraded.module", [])
.factory("MyService", downgradeInjectable(MyService));
- 将
downgraded.module
作为依赖项,在AngularJS环境中任意位置注册该模块
angular
.module('app', ['downgraded.module']);
- 只需像其他任何服务一样注入服务即可