2016-01-10 46 views
-2

我一直在使用jQuery多年。現在,我想學習一些新的建立單頁網站。我選擇了AngularJS。這是使用jQuery和AngularJS的好習慣嗎?

目前我想知道在AngularJS中使用jQuery是個好主意嗎?

例子。

我有類似的東西里面AngularJS控制器:

$http.post('ajax/gettimeline', { page: page }).success(function (data) { 
     $rootScope.loading = false; 


      // Here I need to built dynamic html with getting and setting 
      // dynamic elements size, positions, change their properties, etc. 

     } 
    }); 

建設與jQuery的動態HTML元素是一件容易的事。 但與AngularJS看起來會很痛苦。

將不勝感激任何意見。

謝謝

+0

你讀[這](http://stackoverflow.com/questions/14994391/thinking-in-angularjs-if-i-have-a-jquery-background),對不對? – adeneo

+0

好,這個想法是,你使用的指令做你所有的HTML作品,動態元素的創建,在例如一個循環,在HTML中。一般來說,使用jQuery並不需要太多,但如果使用它,則不會有衝突。事情是,你使用jQuery創建的元素不會被角度管理。 –

+0

位在不同的意見超過http://stackoverflow.com/questions/31201079/combining-jquery-and-angularjs?rq=1 – Thilo

回答

6

不,這不是一個好主意。您在Angular應用程序中使用jQuery編碼實踐,這會讓您很頭疼 - 因爲這些實踐違背了Angular的精神,也因爲您不會從Angular獲得好處。

Angular開發中最重要的部分之一是:您不應該從您的控制器操縱DOM。這在jQuery中很好,但在Angular中,您應該修改模型並讓Angular呈現它。 Angular有一個模板機制,您可以使用它來加載HTML片段。如果您需要動態創建HTML,則應該在指令中執行此操作。其他一切都違反了「關注點分離」原則。

如果你使用jQuery或本機DOM方法來操作輸入設置或修改DOM,您與角一拼了它,這將導致很多難以調試錯誤的設置自己。 Angular的主要觀點之一是two-way databinding,如果你堅持自己將數據綁定到HTML,這不是一個有用的功能。也許更簡單的模板庫如鬍子或淘汰賽會更符合你的喜好?

要想收穫的角度來讓去的一些嘗試和真正的實踐和學習內置的指令,尤其是ng-repeatng-ifng-classng-clickng-change,也許像Angular UI的好處。

0

Big no。 jquery與角度不是好主意。 jquery劑量不同的東西和角劑量不同的東西。 jquery操縱dom並動態添加,追加,刪除元素,另一方面角度只是操作模型數據。但是你可以使用jqlite構建角度。

相關問題