【问题标题】:Angular Material with Angular 4Angular 4 的 Angular 材质
【发布时间】:2017-03-26 10:02:39
【问题描述】:

是否有任何选项可以在新的 Angular 4 中使用 Angular Material?

官方material.angularjs.org说:

Angular Material 最近发布了第 1 版,我们认为它很稳定,可以用于生产。开发人员应注意,Angular Material v1 仅适用于 Angular 1.x。

关于 Angular 2:

Angular Material v2 的开发也在 angular/material2 GitHub 存储库中进行

Angular 4 怎么样?你认为我们可以在一个项目中以某种方式绑定 Angular 1.x 和 Angular 4 以带来 Angular 4 的新功能并继续使用令人敬畏的 Angular Material 框架吗?

【问题讨论】:

  • 仍然没有在线的 Angular4 文档。材料团队没有了解他们将如何、何时以及为什么实施 Angular4 支持的信息。

标签: angular angular-material


【解决方案1】:

您可以参考here入门指南。本文档已更新以支持 angular v4.0.0

一些 Material 组件依赖于 Angular 动画模块,以便能够进行更高级的过渡。如果您希望这些动画在您的应用程序中工作,您必须安装 @angular/animations 模块并将BrowserAnimationsModule@angular/platform-browser/animations 包含在您的应用程序中。

【讨论】:

  • 您好,在使用 LTS 版本 4.4.6 的 Angular 项目中使用 @angular/material(基于 Angular 5)是否安全?
  • 嗨,我也想知道@danrt 的答案,我遇到了编译问题
  • @PedroTainha 只是为了让您知道,我们切换到 Angular 5 以避免任何问题
  • 好的,谢谢。这就是我所面临的,我们也必须改变。
【解决方案2】:

2016 年 12 月,当 Angular 团队跑来跑去告诉大家不要再说“Angular 2”而只说“Angular”时,我有点认为这是愚蠢的营销行为。

然而,在阅读本网站上的问题时,我开始看到他们请求的合理性。 Angular 1.x 到 Angular 2 代表了一个完整的重写,一个完全重新架构的框架,几乎破坏了一切。除此之外,还有向 semver 的切换,这意味着新的主要版本号将会更快地出现。

简而言之,我认为他们试图阻止的是“Angular 4 之于 Angular 2,就像 Angular 2 之于 Angular 1”的思路,这绝对不是真的。

这种认知问题也是导致他们代号 4.0“隐形改造”的原因。

因此,当您看到为 Angular2 设计的包时,它们中的大多数可能也适用于 Angular 4。如果 ng4 更改破坏了这些包,您将很快看到解决这些问题的版本......或者您将得到关于该软件包是否维护良好以在您的项目中使用的答案。

【讨论】:

  • 我同意你的说法。然而,我的观点是关于 Angular Material 库而不是 Angular 它本身,现在看到 Angular Material 官方说你只能使用稳定的 1.x 并且在 GitHub 上你可以找到 Angular 2 的 beta 版本,但是已经有 Angular 4即使对于 Angular 2,他们仍然没有稳定的 Angular Material 构建。
  • 是的,但我的意思是 Angular 4 比名称所暗示的更像 Angular 2.5。 material2 项目与 Angular 4 一起工作得很好(或者它会在他们发布下一个测试版时立即运行(现在你可以指向 master)。从你的陈述来看,你似乎将 Angular 4 视为比实际更大的升级.
  • 是的,也许我做到了。我想只需要使用 Angular 4 到 Material 2 的组合,看看它是如何工作的。
  • 补充一点,Angular 1x 现在只是 AngularJS 和 Angular 2、4(没有 v3)及更高版本,只是 Angular。澄清一下,将 Angular 2 或 Angular 4 称为 Angular 的不同版本是不正确的
【解决方案3】:

我也在使用 Angular 4.0.0 和 CLI 1.0.0,它工作正常。只是说像上面提到的无样式复选框这样的奇怪行为会发生,因为主题化你的组件是强制性的。您可以使用预建的角度材质主题或生成自己的主题。只需将样式表包含在您的 index.html 中,您就会看到它的神奇之处。

更多关于角度材料主题的信息可以在这里找到:https://material.angular.io/guide/theming

【讨论】:

  • 你有一个不错的指南可以指点我吗?我使用 CLI 创建了一个项目,然后添加了对 @angular/material 和 @angular/animations 的引用。然后我在我的styles.css 中导入了一个预先构建的主题。当我运行 ng serve 时,我遇到了各种错误。想知道你能不能帮我解决一下
  • “添加的参考文献”是什么意思?你真的用 NPM 安装了 @angular/material 和 @angular/animations 吗?如果是这样,您是否在 app.module.ts 中检查了您的导入?
  • 当然是 N​​pm。反正我想通了。我正在导入不正确的模块(我一直在遵循指示我加载错误模块的旧指南)。话虽如此,我放弃了材料设计并改用了materialize-css。 Material Design 的测试版有问题,所以我不得不停止使用它。
【解决方案4】:

我刚刚开始使用 angular 4.0.0(使用 angular cli 1.0.0)并尝试将其与材料 2.0.0-beta2 一起使用。除了用户界面中的一些错误之外,它工作正常:

  1. Material Checkbox 看起来很糟糕,它内部有原生复选框 (Screenshot)

如果遇到不稳定的事情,我会更新这篇文章。 看来你现在可以试试https://github.com/mseemann/angular2-mdl

【讨论】:

    【解决方案5】:

    您可以从 here 下载或 fork angular-quickstart 样板文件 在这个项目中有角材料 2.0.0-beta.6 和角 4.0.0 的最新稳定支持。 很难找到最新版本的正确设置。

    【讨论】:

      【解决方案6】:

      这样做:

      npm install --save @angular/animations
      
      import {BrowserAnimationsModule} from '@angular/platform-browser';
      
       //in app.module.ts
      @NgModule({
        ...
        imports: [BrowserAnimationsModule],
        ...
      })
      export class YourAppModule { }
      

      再次导入材质模块。喜欢

      import: [MaterialModule.forRoot()]
      

      【讨论】:

        【解决方案7】:

        大部分 angular 2/4 网站都是 io 试试这个

        https://material.angular.io/

        【讨论】:

        • 这只会重定向到 github-quickstart 页面
        【解决方案8】:

        @import '~@angular/material/prebuilt-themes/deeppurple-amber.css';

        将其添加到您的 css 文件中 :) 。我也有同样的事情发生在我身上。只需要一个主题来解决这个问题。

        【讨论】:

        • 你如何处理丢失的 md-content?
        • 你可以在 angular 中制作自己的元素 :) 。或者使用 md-card-content
        猜你喜欢
        • 2017-10-13
        • 2018-08-26
        • 1970-01-01
        • 2018-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-10
        相关资源
        最近更新 更多