降级Angular路线组件

时间:2019-04-19 19:11:27

标签: angularjs angular migration hybrid ng-upgrade

一个奇怪的问题。我有一个庞大的AngularJS指令,应该将其完全重写。挑战太大了,无法一次完成所有工作。我想知道是否有一种方法可以降级AngularX中的路由组件以加载到此AngularJS指令中而不重构它。我找不到任何详细信息。

降级角度分量使我可以使用称为投影的东西,这等效于AngularJS的包含。

我尝试了很多方法,但是我的最佳方法是:

// component
@Component({
    selector: "some-component",
    templateUrl: "./some.component.html",
})
export class SomeComponent{}

// routes
{ path: "some-route", component: SomeComponent}

// downgrades
import { downgradeComponent } from "@angular/upgrade/static";
import {SomeComponent} from "./some-location"

angular.module("somemodule").directive(
    "someComponent",
    downgradeComponent({ component: SomeComponent })
)

到目前为止,还没有运气。由于应用程序很大。这将使您为完成移植系统所做的工作很少做出承诺。如果名称不匹配。该应用程序将因为找不到指令名称而中断。

如果降级成功,人们会希望angularjs组件能够在该路线上正常工作。

1 个答案:

答案 0 :(得分:0)

再进行一些挖掘后,这将永远无效。我最终只是使用UpgradeComponent类升级指令:https://angular.io/api/upgrade/static/UpgradeComponent 缺点是它通过创建包装器增加了很多样板。