把AngularJS和KendoUI混在一起真的值得吗?

把AngularJS和KendoUI混在一起真的值得吗?,angularjs,asp.net-web-api,kendo-ui,odata,Angularjs,Asp.net Web Api,Kendo Ui,Odata,最近,在使用AngularJS时,我非常喜欢其中的许多特性,比如创建自定义抽象数据工厂等 KendoUI还具有AngularJS提供的类似功能,如MVVM、SPA路线等,因此我很好奇混合这两种功能的好处是什么(除了KendoUI丰富的UI功能之外) --更新-- 我问这个问题是为了澄清,也为了那些可能对两者的好处有点困惑的人,以及为什么在一个项目中会同时使用两者,而不是一个而不是另一个 例如,Javascript单元测试功能(仅使用Angular控制器进行测试,但还没有看到有人使用KendoUI

最近,在使用AngularJS时,我非常喜欢其中的许多特性,比如创建自定义抽象数据工厂等

KendoUI还具有AngularJS提供的类似功能,如MVVM、SPA路线等,因此我很好奇混合这两种功能的好处是什么(除了KendoUI丰富的UI功能之外)

--更新--

我问这个问题是为了澄清,也为了那些可能对两者的好处有点困惑的人,以及为什么在一个项目中会同时使用两者,而不是一个而不是另一个

例如,Javascript单元测试功能(仅使用Angular控制器进行测试,但还没有看到有人使用KendoUI进行测试)

看起来剑道正试图做到这一切,但UI做得最好

谢谢

--更新--

自从写这个问题以来,我已经使用OData完成并集成了KendoUI网格和Angular网格,并在上写了一篇关于如何实现这一点的教程,希望这对其他人有用


堆栈是AngularJS、KendoUI、OData、WebAPI2、.Net MVC5、C#、通过通用存储库访问的实体框架。

我个人只想在Angular指令中使用KendoUI的丰富UI功能。其余部分应该是有角度的。或者只使用剑道。

在我们当前的项目中,我们同时使用角度剑道和剑道(主要用于网格)。我们没有把两者混为一谈,这也是我的建议。Angular应该负责您的应用程序逻辑,Kendo应该只关心小部件的管理


剑道提供了自己的指令,其中包含了大多数小部件的指令。

我认为混合使用它们不是一个好方法。你应该问自己一个问题“在我的项目中,witch one更需要、更有用”

我决定在angular旁边使用
kendo
,因为它有丰富的网格组件。但是我取消了

kendoUI
的主要控件是网格。但是你需要观察它的每一个元素以获得一个完整的绑定,这会使它变慢。此外,网格中某行的
dataItem
不会返回原始数据。 你需要观察分页、过滤、排序


但是对于剑道的其他控制,我们的问题更少。

将它们混合使用效果很好。您不必使用Kendo附带的所有框架代码(MVVM等),只需关注丰富的UI功能即可。我们使用了他们的几个控件,包括高度定制的网格版本。Angular非常适合这样做,因为我们构建了封装剑道控件的指令,并封装了每次发生的80%配置,这样开发人员就可以专注于页面/模块/任何内容中不同的20%。我们的项目成功地让20多名开发人员加入了一个分布式团队,参与了一个包含数万行代码的项目,并且我们在使用Kendo的UI功能和Angular方面取得了巨大的成功

我知道这是旧的,但这是我的两分钱。你使用的角度越多,你就会越意识到你不需要剑道。剑道/角度的整合是一个小技巧,但它似乎完成了任务。我发现使用剑道的唯一原因是格网。我曾经尝试过角度网格,它们充满了bug和格式问题

我认为重要的是不要成为一个纯粹主义者,而只是使用各种工具的组合来完成你所需要的。我倾向于尝试摆脱对付费商业图书馆的依赖,但网格是坚实的。任何付费产品都可能有更多的支持和维护,以及与开发团队的个人接触(与大公司或单个开发人员项目提供的维护良好的免费产品相比,这些产品会浪费掉)。我看到很多伟大的免费产品被抛弃。然而,如果你想要一个很好的免费网格,并且不能忍受仅仅为一个网格支付Telerik$1000.00,那么DataTables.net是一个很好的选择,也是我目前使用的


你必须热爱Telerik的支持,在我看来,这是使用他们产品的最好理由。他们在剑道中缺少一些东西,比如一个好的日期范围日历,标签云,等等。与高级图表相比,这些图表也缺少。我使用基思·伍德(Keith Wood)的日期范围日历,尽管他似乎不回复电子邮件。我还发现了一些很棒的角度控制,比如下拉列表等。我过去不明白为什么人们会使用各种各样的东西,但这是最重要的工作工具。

以下是我的几点经验,不赞成将KendoUI与AngularJs混合使用:

  • 尽管AngularJs有剑道指令,但许多与UI相关的东西最终会出现在控制器中(配置、事件、复杂模板),很难将jQuery排除在外
  • 剑道组件的初始化和显示会给每个页面(网格、tabstrip等)增加严重的时间损失
  • 事件和方法参数在整个剑道框架中不一致(即网格的select方法vs listview vs combobox)
  • 在网格(或listview)中使用模板或响应网格事件感觉不像AngularJs
  • 组件的行为不同于它们试图替换的本机控件(即combobox与本机select的事件顺序和数据绑定)
  • 一旦剑道组件的外观和感觉需要定制,就必须熟悉剑道使用的CSS类

KendoUI网格非常棒,但是如果项目不需要它,那么将两者混合就没有任何好处。

好的,这是我一直在考虑的方法。只要把所有剑道控制都连接到角度控制器上,我相信你是这么说的。有了这些,你能对以下内容发表评论吗?@ElHaix我会