一尘不染

AngularJS:ng-click是“一种好的做法”吗?为什么AngularJS中没有ng- {event}?

angularjs

我才刚刚开始学习AngularJS,并尝试了一些AngularJS的概念。如果有人可以向我解释一些观点,那就太好了。

  1. 我知道从ng-click技术上讲,这与onclick不同,但是两者都放在标记中。我以为那是“坏习惯”?如果大多数人说这是“不好的”,为什么这是AngularJS的核心概念之一?我认为最好从JavaScript中选择DOM元素,而不要在标记中放置逻辑。

  2. 如果ng-click是对AngularJS中的click事件做出反应的正确方法,我应该如何处理其他DOM事件?我看到还有其他类似的指令ng-mouseover,但并非所有DOM事件都具有等效的AngularJS。我将如何处理AngularJS中的’drop’事件(因此采用AngularJS方式-而不是常规方式)?要清楚:我想将文件拖到我的webapp中

非常感谢Pipo


阅读 140

收藏
2020-07-04

共1个答案

一尘不染

如果大多数人说这是“不好的”,为什么这是AngularJS的核心概念之一?

好吧,那些真正喜欢UnobtrusiveJavaScript的人可能会说这很糟糕。Angularian(以及那些具有弹性背景的人)在更具说明性的方法中看到了价值。


Angular是基于这样的信念构建的:在构建UI和将软件组件连接在一起时,声明性代码比命令性要好。通过声明性地描述UI应随应用程序状态的变化而变化,您将摆脱底层DOM操作的困扰。任务-
概述文档

另请参见Bootstrap,Angular.js和Ember.js中使用的数据属性选项是否与UnobtrusiveJavascript原则冲突?

我应该如何处理其他DOM事件?

编写您自己的指令以侦听它们(或找到其他人已经编写的指令)。Angular使您能够编写自己的指令来扩展浏览器的功能。

更新 :在下面的评论中,蒂姆·斯图尔特提到了AngularUI的ui-event,它使您可以将回调绑定到Angular本身不支持的任何事件。

2020-07-04