2016-01-10 101 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构建角度。

相关问题