【问题标题】:Can AngularJS Material Components work with Angular2?AngularJS 材质组件可以与 Angular2 一起使用吗?
【发布时间】:2018-03-28 06:07:19
【问题描述】:

我刚从一位离开我们公司的同事那里收到了一个网络应用项目。该项目是使用 Angular2 作为其框架构建的,但看起来该工作人员试图将 AngularJS Material 用于 HTML 组件。

据我了解,如果我想要 AngularJS Material 中的卡片组件,我会使用标签 <md-card>,而对于 Angular2 Material,我会使用标签 <mat-card>。在这个项目中,使用的组件 100% 是“md”组件,这对 Angular2 项目没有意义。

当我为项目提供服务时,什么都没有出现,我收到错误:'md-card' is not a known element.If 'md-card' is an Angular component, then verify that it is part of this module. 这是有道理的,因为“md-card”不应该是 Angular2 中的已知元素。

所以我的问题是:是否有可能让 AngularJS Material 组件与 Angular2 一起使用,还是我必须重新处理整个项目中的所有 HTML?

【问题讨论】:

标签: angularjs angular angularjs-material


【解决方案1】:

您必须同时运行这两个框架才能使其正常工作。虽然这当然是可能的,但通常是不需要的,特别是如果 AngularJS 应用程序和 Angular 2+ 应用程序的结束和开始位置之间没有明确的分隔(例如,如果您正在迁移 AngularJS应用于 Angular 4)。围绕 Angular 2+ 应用程序散布的 AngularJS 组件似乎不是一个理想的情况。

这里有一些额外的问题:

  • 组件名称可能会发生冲突
  • 路由可能会相互干扰
  • AngularJS 组件和 Angular 2+ 组件之间的通信很困难

我有两个建议。

  1. 要么取消对 AngularJS 的依赖,然后在前同事之后进行清理。
  2. 或者,围绕 Angular2 Material 组件创建瘦包装器组件,其名称和签名与 AngularJS 材料组件相同。这只有在组件的工作方式有些相似的情况下才有可能。

我推荐第一个建议,因为后者可能只适用于最简单的组件。

【讨论】:

    猜你喜欢
    • 2018-06-17
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 2014-06-30
    • 2014-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多