我知道我们不应该在控制器中进行DOM操作,我已经google了答案并试图理解它,我得到的是指令用于它们的可重用性,但我感到困惑的是控制器也一样,我们可以使用控制器,它们内部可以有任何元素。并且可以使用它的功能或使用它的事件处理。所以为什么不控制器??? 我错过了一些观点,或者我对控制器和指令的理解是错误的
答案 0 :(得分:0)
角度控制器用于处理模型。对于逻辑我们创建服务,对于dom操作它们提供指令,并且对于视图渲染更改过滤器是可用的。因此,角中的每个组件都有自己的角色。
现在,我们使用指令进行dom操作,因为它提供了元素的dom jqlite对象,我们可以使用angularjs jqlite方法
https://docs.angularjs.org/api/ng/function/angular.element
它还使我们的代码可重用。 指令的其他功能如编译(pre,post),隔离范围,require,模板绑定使您可以轻松控制dom。 要在JavaScript中实现这些功能,我们需要编写大量代码。