如何用Angular js做日常Javascript的东西?

Bhu*_*tap 2 javascript javascript-framework angularjs

在过去的3-4天里,我一直在研究Angular js.从它的外观(使用教程和视频)看起来非常直观.但是当我真正开始用Angular js替换我当前的Web应用程序代码时,我面临很多启动问题.

例如,如果在某个事件上我希望将一些HTML添加到DOM中某个已存在的元素,那么通过传统的jQuery路由,我只需获取元素并添加HTML.我无法理解如何使用Angular执行完全相同的操作,因为在Angular控制器中不建议使用DOM操作.所以我如何访问我应该扩展的元素.

另一个例子可能是我必须在某个时候重置一个Form元素.我再次面临在Angular控制器中使用jQuery样式元素选择器的困境.

有人可以向我解释如何用Angular做所有这些事情.

Tia*_*dão 5

让我先回答你的标题问题:不要.

AngularJS是一个功能强大的工具(我现在只是在表面上工作,现在已经完成了2个月的角度工作,但现在它太过自以为是,它是一个很好的选择脚本.它有一点学习曲线(不是太陡峭,但肯定比"嘿,{{model}}是神奇的!"你在他们的页面上找到的介绍.不要误会我的意思 - 我绝对喜欢它,它非常有条理,迫使我组织起来,并使代码具有极高的可扩展性.所以,如果你愿意学习它的"MO",那么一旦你做到了,你就会喜欢它.

现在,在DOM操作上:你可以通过多种方式进行操作,但基本上,如果你想要DOM操作,你需要一个指令.这些教程很好地帮助你,但是如果你对JS有一定的擅长,我建议你去探索源代码(ngRepeat,你可能已经知道,是一个直接的常规指令,就像你可以创建的那样) .角度范围与DOM元素相关联,反之亦然.在一个指令中,你可以解决它所绑定的元素,并使用jQuery(或任何其他框架,或只是普通的JS)来改变它.更改可以与元素出现的时刻,模型的更改(通过$ watch函数)或您自己指定(和触发)的事件相关联(请参阅$ broadcast ad $ emit).

我更改了一个解决不同类型问题的示例脚本(即在ngRepeat结束时触发事件),以包含一些处理DOM的不同方法:http://plnkr.co/edit/or5mys