javascript - 如何将 AngularJS UI 组件库移植到最新的 Angular?

标签 javascript angularjs angular angular-material

我多年来一直致力于个人项目。这不是为了工作,也赚不到钱。所以我花时间进行项目的开发,这意味着我仍然使用 AngularJS 作为我的前端 UI 库。

AngularJS 是我的“组件”库,其中所有指令、组件和服务都用于从 Web 服务器“引导”现有 HTML。后端由 CakePHP 处理,它呈现所有 HTML。

没有大规模的单页应用程序,也没有 AngularJS 路由。我在每个页面请求上加载我的 UI 库,这就是我想要继续这样做的方式。

我的日常工作都在与 Angular 5 打交道。我非常擅长这方面的工作,当其他开发者有 Angular 问题时,我就是寻求帮助的人

尽管拥有这些技能,我还是无法找出我的 UI 库从 AngularJS 到最新 Angular 的迁移路径。 Angular 2+ 已经发布几年了,但我仍然坚持使用 AngularJS。

这是我的问题的示例:

看看Material Angular使用 Angular 4 构建的项目。它与我自己的 UI 库基本上是同一类型的库。它包含您可以使用的指令和组件的集合。

如果您有一个使用现有 HTML 进行响应的 Web 服务器,并且您希望使用 Material Angular 作为您的 UI 库,那么您就不能这样做。让我们以自动完成组件为例。

文档解释了如何使用自动完成:

https://material.angular.io/components/autocomplete/overview

还有一个该组件的工作示例:

https://stackblitz.com/angular/ggmpnaqqqxk

在文档中,它表明您可以像这样使用该组件:

<mat-autocomplete>
   <mat-option *ngFor="let option of options" [value]="option">
      {{ option }}
   </mat-option>
</mat-autocomplete>

但是当您查看工作示例时,您会发现我遇到的问题。在他们的示例中,他们必须引导整个 Angular 应用程序容器,该容器用于注入(inject)具有自动完成<功能的应用程序 HTML/em> 示例。

他们不能只使用 <mat-autocomplete>现有 HTML 页面中的组件。

现在让我们看一下 AngularJS 中为旧的 Material Angular 完成的完全相同的组件。项目。

它也有一个名为 <md-autocomplete> 的自动完成组件。与旧版本的功能基本相同。

甚至还有一个工作示例:

https://codepen.io/anon/pen/goLrpJ

它也引导 AngularJS 应用程序,但它使现有的 HTML 完整。这允许您使用 <md-autocomplete>直接在现有的 HTML 中。

如何创建可用作现有 HTML 组件库的 Angular 5 应用程序?

最佳答案

Angular Elements应该在不久的将来解决这个问题。正如 this write-up 中详细解释的,他们能够提供自引导、独立的自定义元素。

目前限制 attributes 使用的问题仍未解决和 projected content在根组件上,这严重限制了 Angular 组件在现实场景中作为自定义元素的使用范围。

关于javascript - 如何将 AngularJS UI 组件库移植到最新的 Angular?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47954343/

相关文章:

javascript - 在 Google Gears Workerpool 中加密 JSON

angularjs - 将 JSON 值从一个 Controller 传递到另一个 Controller

angular - 使用 angular2 中的 'xlsx' 导出到 CSV 文件

javascript - Angular 2自定义验证器如何设置control.valid true?

javascript - 如何使用 AWS Cognito 中的现有用户池生成 aws-exports.js?

javascript - 在网页中显示(语法)树

javascript - 将 props 传递给 DrawerNavigator 中的 contentComponent

javascript - 如何修改Pusher中的成员(member)信息?

javascript - Angular1.6工厂

AngularJS 循环依赖