18

我真的很喜欢学习使用 AngularJS。现在我正在寻找可以与它一起使用的组件。我一直在研究 Angular-UI 组件,但我想知道是否可以在 ExtJS 中使用漂亮的增压组件。有人对此有经验吗?任何提示或技巧或 Angular 指令库?

4

4 回答 4

10

我工作的公司也采取了类似的举措。我们目前严重依赖旧版本 (3.x) 的 ExtJS,升级到当前 (5.0) 版本的努力至少等于迁移到 Angular 所需的努力。

回答这个问题(据我所知):

它们可以一起存在于同一个 JS 应用程序中。

你可以在 Angular 中使用 ExtJs 的 UI 元素吗?

您可以通过 Ext 中的 HTML 模板将 Angular 置于对标记的控制中。

这是一个明智的想法吗?

可能不是。

为什么我会考虑这样做?

  1. 我需要对标记进行绝对控制,而不关心可能的页面加载问题

  2. 我需要以 Ext 本身不提供的某种特殊方式进行序列化或反序列化

  3. 我需要做一些特别的事情,比如 pub/sub(仍然完全可以使用 Ext)

在我们的例子中,它是一些模态的概念证明。如果我有偏见,我对 ExtJs 的方向有偏见(鉴于我的背景,这是一个巨大的声明)。我对 ExtJS 的了解越多,我个人就越喜欢它。过去我使用过几个框架,例如 Ember、Backbone、KnockoutJs 和 AngularJs,它们是优秀的工具,已经达到一定程度的成熟度,使它们成为绝佳的选择。也就是说,他们没有遵循与 ExtJs 相同的开发模型/模式,而且我认为直接比较对任何一方都不公平。

这几乎就像将 Ext 与 Node 进行比较(我知道这很愚蠢)。

如果您的项目需要一些您认为在 Ext 中不可能实现的特殊功能,那么您可能和我一样,并且经验有限。如果你对 Ext 有很多经验,并且想尝试我们正在尝试的东西,我建议你去尝试。Ext 的唯一缺点是交付的构建包的大小。另一个小框架不会对此有所帮助,但它也不会造成更多痛苦。

最后,对我来说,我只是喜欢 JS 并扩展我对现在和未来如何工作的知识。

对于上面询问 Ext 缺乏吸引力的帖子:答案很简单......它不是免费的,因此对于我们中的许多人来说不是一个选择,因为他们没有编写非常适合许可证的商业软件。

于 2014-10-20T21:05:49.337 回答
8

在我们工作中的 AngularJS 应用程序中,我们集成了一个第三方 ExtJS 应用程序,但不是为了它的 UI 组件。我们根据用户输入打开该应用程序的某些弹出窗口,当用户在弹出窗口中提交数据时,我们响应 ExtJs 事件以刷新我们的应用程序。只要库有公共事件要响应,AngularJS 就足够灵活,可以与任何其他 Javascript 代码/库集成。我建议阅读有关如何有效创建指令和响应Directive事件的文档。scopescope

就我个人而言,我不觉得 ExtJS 和 AngularJS 需要一起使用,除非你被迫像我一样使用它。有http://angular-ui.github.io/带来了很多东西。同样,任何给定的 JQuery 插件都可以使用 AngularJS 中的指令、过滤器等进行集成。因此,在尝试使用 ExtJS 之前,您可能需要对此进行调查。

于 2013-05-08T19:36:43.860 回答
3

如果你有 ExtJS,为什么还需要 AngularJS?我同意学习 Ext 可能会有些困难,尽管一旦你咬过它,目前没有比这更好的了。唯一的缺点是占地面积更大,但谁在乎呢?它并没有引起任何问题……我们在工作中只使用 ExtJS,并且我们的应用程序的进步是惊人的。它与 Spring MVC 无缝集成。我们不需要直接破解 HTML,我认为这更像是一个优点而不是一个缺点:不再需要编写标签,不再需要打开/关闭标签问题,您仍然可以使用 css 和 Ext 处理任何浏览器不兼容问题,您还能做什么需要更多??Angular 只是一个新手,但总的来说它(还)不能与 ExtJS 竞争。它甚至没有关闭。只是我的 2 美元。

于 2014-10-10T12:52:17.283 回答
0

Sencha 计划在框架中添加支持。请在底部找到链接以供参考:

在 2016 年 11 月 7 日至 9 日在拉斯维加斯举行的 SenchaCon 上,Sencha 将介绍在 Angular 2 应用程序中使用 Ext JS 组件、布局和主题的能力,我们目前将其称为 Ext JS Bridge to Angular 2(也称为'桥')。

https://www.sencha.com/blog/first-look-ext-js-bridge-to-angular-2/

于 2017-05-01T03:11:40.087 回答