在AngularJS中使用jQuery是一个好习惯吗?

时间:2016-01-10 16:02:21

标签: javascript 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看起来会很痛苦。

欢迎任何建议。

由于

2 个答案:

答案 0 :(得分:10)

不,这不是一个好主意。你在Angular应用程序中使用jQuery编码实践,这会让你头疼 - 因为这些实践违背了Angular精神,也因为你没有获得Angular的好处。

Angular开发中最重要的部分之一是:您不应该从控制器操纵DOM。这在jQuery中很好,但是在Angular中,你应该修改你的模型并让Angular渲染它。 Angular有一个模板机制,您应该使用它来加载HTML片段。如果需要动态创建HTML,则应在指令中执行此操作。其他一切都违反了"关注点的分离"原理

如果您使用jQuery或本机DOM方法来操作输入设置或修改DOM,那么您可以自行设置与Angular的争用,这会导致很多难以调试的错误。 Angular的一个要点是two-way databinding,如果您坚持将数据绑定到HTML,则这不是一个有用的功能。也许你最喜欢的一个更简单的模板库如小胡子或淘汰赛?

获得Angular的好处意味着放弃一些经过验证的真实实践并了解内置指令,尤其是ng-repeatng-ifng-classng-clickng-change可能类似于Angular UI

答案 1 :(得分:1)

大号。在angular.js中使用jQuery并不是一个好主意。 jQuery做了不同的事情而angular.js做了不同的事情。 jQuery操纵DOM并动态添加,追加,删除元素。另一方面,angular.js只是操纵模型数据,但你可以使用内置于angular.js的jqlite。

相关问题