迁移 AngularJS 到 Angular:如何迁移获取控制器引用的服务

Migration AngularJS to Angular: How to migrate service which gets a controller reference

我正在将一个 AngularJS 应用程序在 ngHybrid 的帮助下一个组件一个组件地迁移到 Angular。到目前为止它是有效的,但现在我偶然发现了一个奇怪的 AngularJS-Service,其函数被传递给 AngularJS-Component-Controller 作为函数参数:

// Service
getDocumentList(requestData, ctrl) {
    // edits stuff on ctrl, like adding variables and modifying values
}

// calling component
var ctrl = this;
documentService.getDocumentList(requestData, ctrl);

我知道我知道,我自己永远不会创建一个通过传递引用修改控制器的服务方法,这是一种可怕的做法,但我只是迁移它,在重构它之前我宁愿让它工作尽可能少的努力。我只是不确定 Angular 是否可以传递引用,因为我不再有控制器但是 类... 有没有办法让它工作我可以 重构它,以便服务returns调用组件与之一起工作的东西(它应该是......)?

在Angular组件class通常完成控制器功能。所以相同的代码 - 传递 this 应该有效。但是变更检测可能会出现问题,尤其是当您使用 onPush 策略时