Javascript 如何将AngularJS UI组件库移植到最新的AngularJS?

Javascript 如何将AngularJS UI组件库移植到最新的AngularJS?,javascript,angularjs,angular,angular-material,Javascript,Angularjs,Angular,Angular Material,我在一个私人项目上工作了很多年。这不是为了工作,也没钱赚。所以我花时间做这个项目的开发,这意味着我仍然使用AngularJS作为我的前端UI库 AngularJS是我的“组件”库,其中包含所有指令、组件和服务,用于从web服务器“引导”现有HTML。后端由CakePHP处理,它呈现所有HTML 没有大规模的单页应用程序,也没有AngularJS路由。我在每个页面请求上加载我的UI库,这就是我希望继续这样做的方式 我白天的工作是和Angular 5一起工作。我在这方面很在行,当其他开发人员有角度问

我在一个私人项目上工作了很多年。这不是为了工作,也没钱赚。所以我花时间做这个项目的开发,这意味着我仍然使用AngularJS作为我的前端UI库

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

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

我白天的工作是和Angular 5一起工作。我在这方面很在行,当其他开发人员有角度问题时,我是一个积极的人

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

下面是我的问题的一个例子:

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

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

本文档介绍了如何使用自动完成:

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

在文档中,您可以使用如下组件:

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

{{option}}
但是,当你看一看工作示例时,你会发现我的问题。在他们的示例中,他们必须引导整个Angular应用程序容器,该容器用于注入具有自动完成示例的应用程序HTML

他们不能只在现有HTML页面中使用
组件

现在,让我们来看看AngularJS旧项目中完全相同的组件。

它也有一个名为
的自动完成组件,旧版本的功能基本相同

甚至还有一个可行的例子:

它也会引导AngularJS应用程序,但它会保持现有HTML的完整性。这允许您在现有HTML中直接使用

如何创建一个Angular 5应用程序,将其用作现有HTML的组件库?

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


目前,限制根组件上和的使用的问题仍未解决,这严重限制了在真实场景中使用角度组件作为自定义元素。

AngularJS是一种完全不同的方法。它不是为基于组件的使用而设计的。@jornsharpe我同意,但这对我意味着什么?我基本上完蛋了,必须在React from scratch中完全重写我的UI库吗?我不能继续使用AngularJS,或者我错了。这不是一个死胡同的图书馆吗。它没有未来。当您访问AngularJS网站时,会看到一条横幅消息,上面写着“这是我们的旧框架,请尝试我们的新框架”。有技术债务,但这感觉像是技术问题。stackoverflow上肯定有其他开发人员面临着和我一样的问题。一定有人在什么地方找到了解决办法?为什么没有更多的人谈论这件事。很难找到有解决方案的谷歌搜索结果。这取决于你:在React(或Vue,或其他东西)中重写,继续使用AngularJS(并接受它可能不会获得太长时间的新功能);切换到角度;或者你认为最好的。不,不一定有解决方案。Angular2+比AngularJS更不适合web组件。如果你在这两方面都有足够的经验,你现在应该知道了。您可以让它作为非SPA小部件工作,但对于独立组件来说,它会很糟糕。目前的问题是一个很大的障碍。谢谢你的回答,我希望这是一个坚实的解决方案,但这对我来说太少太晚了。我有很多AngularJS指令来增强现有HTML的功能。像工具提示这样简单的东西不能转化为角度元素(至少不容易,而且应该很容易)。到目前为止,我认为React是框架无关组件的一个好选择,因为它们足够灵活,没有太多限制。当然,这取决于用户界面库的使用方式。这就是您的操作方式。这和角元素的作用完全一样。这段代码实际上用于创建angular.io,其中他们为每个页面创建动态内容,但在其内部HTML中使用angular组件