这是将jQuery与AngularJS一起使用的好做法吗

Is that a good practice to use jQuery with AngularJS?

本文关键字:一起 jQuery AngularJS      更新时间:2023-09-26

我已经使用jQuery很多年了。现在,我想学习一些新的东西来建立单页网站。我选择了AngularJS。

目前我想知道将jQuery与AngularJS一起使用是否是个好主意?

示例。

我在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看起来会很痛苦。

如果有任何建议,我们将不胜感激。

感谢

不,这不是一个好主意。你在Angular应用程序中使用jQuery编码实践,这会让你头疼——这一次是因为这些实践违背了Angular的精神,也因为你无法从Angular中获益。

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

如果您使用jQuery或原生DOM方法来操作输入设置或修改DOM,那么您将与Angular展开一场斗争,这将导致许多难以调试的错误。Angular的一个要点是双向的如果您坚持自己将数据绑定到HTML,那么数据绑定不是一个有用的功能。也许其中一个更简单的模板库,比如小胡子或敲除,会更符合你的喜好?

要获得Angular的好处,就意味着放弃一些久经考验的实践,学习内置指令,尤其是ng-repeatng-ifng-classng-clickng-change,也许还有Angular UI之类的东西。

Big NO。将jQuery与angular.js一起使用不是一个好主意。jQuery做不同的事情,angular.jss做不同的事。jQuery处理DOM并动态添加、追加、移除元素。另一方面,angular.js只是处理模型数据,但您可以使用angular.js内置的jqlite。