我可以彼此相邻运行AngularJS组件和Angular组件吗?

时间:2018-07-24 16:00:00

标签: angularjs angular ng-upgrade angular-hybrid

我们有一个AngularJS应用程序。 “主”模板超出了它的范围:它是由CMS生成的。我们不知道页面的外观。只要有AngularJS组件,AngularJS应用程序就会启动。

这不是SPA,我们只会创建交互式组件,直到页面刷新出现为止。

我们使用angular.bootstrap(document, ['App'], { strictDi: true });

引导应用程序

精简版:

<html>
    <body>
        <div>
            <usermenu></usermenu>
        </div>
        <div>
            <item-list></item-list>
        </div>
    </body>
</html>

我们想迁移到Angular(在撰写本文时为6)。我使用cli创建了一个应用,并将生成的应用与我们的AngularJS应用合并。

然后我按照https://angular.io/guide/upgrade的ngUpgrade教程进行操作。尽管已经过时了(仍然使用SystemJS!),我还是设法启动并运行:我的AngularJS应用程序由Angular引导。

在上述示例中,我有两个AngularJS组件:usermenuitem-list。他们俩都使用任意数量的服务。

随着时间的流逝,会发生两件事:

  • 我将usermenu转换为Angular组件,但我没有降级该组件
  • 我创建了一个新的Angular组件(即:signout-button

考虑我的新模板:

<html>
    <body>
        <div>
            <usermenu></usermenu> <!-- Angular component -->
        </div>
        <div>
            <item-list></item-list> <!-- AngularJS component -->
        </div>
        <div>
            <signout-button></signout-button> <!-- Angular component -->
        </div>
    </body>
</html>
  • 以下模板会引导Angular和AngularJS组件吗?
  • 还是我需要降级两个Angular组件才能使其正常工作?

ngupgrade指南提到了类似“ AngularJS OWNS的根组件”之类的内容。要在AngularJS中使用Angular组件,您需要对其降级。要在Angular中使用AngularJS组件,需要对其进行升级。但是,既然我有三个基本组成部分,它将起作用吗?

我当然尝试过,但是无法使其正常工作。我感到AngularJS拥有的“根组件”不是找到的组件之一,而是应用程序被引导的元素(在我的情况下为document)。

有人可以确认这一点,所以我知道降级组件是唯一的方法,或者也许可以通过Angular和AngularJS组件“彼此​​相邻”引导我正确的方向?

0 个答案:

没有答案