有点奇怪的问题。我有一个庞大的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组件在路线上工作。
经过一番挖掘,这将永远不会奏效。我最终只是使用UpgradeComponent类升级指令:https://angular.io/api/upgrade/static/UpgradeComponent的缺点是它通过创建一个包装器添加了很多样板。