2014-01-29 59 views
24

近年來,隨着AngularJS工作,我真的很喜歡的許多功能,如創建自定義的抽象數據工廠等真的很值得混合AngularJS和orKendoUI嗎?

KendoUI也有類似的功能,如MVVM,SPA路線等是AngularJS報價,所以我m好奇混合兩者的好處是什麼(除了KendoUI的豐富UI功能)?

- 更新 -

我要求澄清這個問題,併爲那些誰可能會略有困惑各的好處,爲什麼人會在一個項目中同時使用,而不是一個在另一個之上。

例如 - Javascript單元測試功能(簡單地使用Angular控制器完成,但沒有看到任何人使用KendoUI進行此操作)。

看起來劍道似乎在努力做到這一切,但用戶界面最好。

謝謝。

- 更新 -

因爲寫這個問題我曾經走過和集成KendoUI網格角使用的OData和www.whatsinyourlunch.com如何做到這一點已經寫了一個教程here,在希望這將對其他人有用。

該堆棧是通過通用存儲庫訪問的AngularJS,KendoUI,OData,WebAPI2,.Net MVC5,C#實體框架。

回答

17

我知道這是舊的,但這裏是我的兩美分。你越使用Angular,越會意識到你不需要劍道。 Kendo/Angular集成有點破綻,但似乎完成了這項工作。我發現使用劍道的唯一原因是網格。我嘗試過那裏的Angular網格,他們充滿了錯誤和格式問題。

我認爲重要的是不要成爲純粹主義者,只要使用任何組合的工具即可完成您所需的工作。我傾向於試圖擺脫對付費商業圖書館的依賴,但網格卻很穩固。任何付費產品可能會有更多的支持和維護,以及開發團隊的個人訪問權(維護大型公司的免費產品或浪費掉的單個開發人員項目)。我見過這麼多優秀的免費產品都被拋棄了。然而,如果你想要一個優秀的免費網格,並且不能僅僅爲一個網格支付Telerik $ 1000.00,那麼DataTables.net是一個很好的選擇,而且我目前使用的是它。

你必須愛上Telerik的支持,這是我認爲最好的理由使用他們的東西。他們在劍道中缺乏一些好的日期範圍日曆,標籤雲等等。與Highcharts相比,這些圖表也缺乏。我使用Keith Wood的日期範圍日曆,儘管他似乎沒有回覆電子郵件。我發現了一些很棒的角度控制器,用於其他諸如下拉式等等。我曾經不明白爲什麼人們會使用大量的東西,但這是重要的工作最好的工具。

+1

+1對於「劍道/角度集成有點破綻,但它似乎完成了工作。」現在在工作中使用kendo/angular combo,它讓我哭泣,這是由第三方開發者在這個項目中完成的。唯一的痛點是它的工作原理。維護方面,這是一場噩夢,但它有效。 :( –

+1

我在Kendo Grid使用了兩年,在我看來,如果你想使用很多功能和自定義,它會有很多bug。它不是幾乎沒有什麼好的免費/幼兒解決方案。 –

7

我個人不會再使用Angular指令中的KendoUI的豐富的UI功能。其餘的應該是Angular。或專門使用KendoUI。

+0

同意。我嘗試了混合兩種,但最終只使用劍道。 Kendo在需要時提供優秀的數據源API和MVVM – dakt

3

在我們當前的項目中,我們使用Angular和Kendo(主要用於網格)。我們沒有混合這兩個,這也是我的建議。 Angular應該是你的應用程序邏輯的負責人,而Kendo只應該關心管理這些小部件。

劍道提供了自己的kendo-angular library,其中包含大部分小部件的指令。

+0

好的,這是我一直在考慮的方法。只需連接Angular控制器中的所有Kendo控件,這就是我相信你所說的。有了這個,你可以評論以下內容:http://stackoverflow.com/questions/21418110/how-to-get-angularjs-and-kendoui-working-in-harmony? – ElHaix

+0

@EHHix我晚上晚些時候會看看它。 – thomaux

+0

@Anzeo通過「不混合」你的意思是不讓kendo數據源綁定直接調用後端,而是通過Angular服務來實現(正如你通常那樣)?我目前正在評估Kendo是否值得角度考慮,但我對這些組件的可測性表示擔憂。看到控制器中的所有數據源代碼看起來有點令人擔憂.. – Juri

1

我認爲混合它們不是一個好方法。你應該問自己一個問題「女巫在我的項目中更加必要和有用」

我決定使用kendo,因爲它具有豐富的網格組件。但我取消了。

kendoUI的主要控件是網格。但是你需要注意它的每一個元素都有一個完整的綁定,並且讓它變慢。網格中一行的dataItem也不會返回原始數據。 你需要看分頁,過濾,排序....

但是對於其他控制01​​我們有更少的問題。

+1

完全不同意。我們以自定義的方式使用Kendo網格來顯示可包含多達25萬行的分層網格。它實現了完整的分頁和節點的展開/摺疊,使用Angular的數據綁定並且表現非常好。我們也有分頁,過濾,排序,甚至自定義列。我不知道你爲什麼遇到問題,但它對我們很好。 –

+0

@Jeremy:我很高興聽到它適合你。同樣在我們的經驗中,混合這兩個似乎不是一個好主意。 我的經驗是:1)更多的代碼膨脹只是爲了使劍道工作2)用戶界面似乎更慢3)劍道似乎有一些奇怪的怪癖時使用角 –

5

混合他們工作正常。您不必使用Kendo中包含的所有框架代碼(MVVM等),只需專注於豐富的UI功能即可。我們使用他們的幾個控件,包括高度自定義的網格版本。Angular對此非常完美,因爲我們構建了包裝Kendo控件的指令,並封裝了每次發生的80%配置,因此開發人員可以專注於頁面/模塊/任何不同的20%。我們的項目成功地讓一個擁有數萬行代碼的項目中的20多名開發人員參與到分佈式團隊中,並且使用Kendo和Angular的UI功能取得了巨大成功。

+0

我不知道是否引入Kendo角的真正值得。我可以定義一個Kendo控件,然後在角度控制器中設置其所有屬性(數據源等),例如網格。 CRUD事件可以綁定到OData端點(但是仍然沒有真正的「角度」集成)。我想抽象出一個角度CRUD工廠,從而給JS可測性(CI /等)。建議這種架構還是有更好的方法 - 請參閱http://stackoverflow.com/questions/21467130/how-to-setup-curd-with-kendoui-grid-for-use-with-kendo-angular-and- an-angular-od? – ElHaix

+0

如果OData工作,那麼這可能是好的。我們有更多的細粒度需求來控制我們的領域模型被操縱的方式,所以OData並沒有真正地削減它,而且在客戶端定製Angular路線肯定是必須的,但是對於每個項目它都是不同的。 –

3

這裏有幾個不利於KendoUI與AngularJs混合我的經驗點:

  • 雖然有對AngularJs劍道指令,很多UI相關的東西會在最後控制器(配置,事件,複雜模板),並且很難將jQuery放在它之外。
  • 劍道組件的初始化和顯示確實增加了嚴重的時間處罰每一頁(網格,標籤欄,...)
  • 事件和方法的參數是不能跨越劍道框架一致的(即網格的選擇方法vs listview vs combobox)
  • 使用網格(或列表視圖)模板或響應網格事件感覺不像AngularJs
  • 組件的行爲不同,他們試圖取代(即事件順序和組合框的數據綁定VS本地選擇)
  • 只要劍道部件的外觀和風格進行定製的本地控制,就必須熟悉與kendo使用的CSS類。

KendoUI網格很棒,但是如果項目不需要它,那麼通過混合兩者就沒有什麼好處。