为什么我们需要在ng-click中传递“$ event”?

时间:2017-07-06 11:29:08

标签: angularjs

我知道我们可以在角度中执行点击事件,例如ng-click="clickMe()"。但我刚刚通过了一些示例。$event就像ng-click="clickMe()"一样传递给了$event。为什么我们需要通过ng-click="clickMe()"
ng-click="clickMe($event)"getUsers = (input) => { console.log(input); if (!input) { return Promise.resolve({ options: [] }); } if (input.length > 2) { const newstate = this.state; newstate.loadingtext = 'Searching...'; this.setState({ newstate }); const searchLocation = Object.assign({}, cookie.load('cLocation')); searchLocation.searchText = input; searchLocation.isBusiness = false; console.log(input.toString().length); return fetch(sourceName.searchNavbar, apiUrl.locationAndBusiness, searchLocation) .then(json => ({ options: json.data })); } return null; }之间有什么区别?
请任何人解释。

2 个答案:

答案 0 :(得分:1)

你不需要,大部分时间你都不应该这样做。从javascript中的所有点击中,都有一个Event - 对象可用。 $ event恰好是在javascript中访问这些内容的方式。

如果您对这些活动感兴趣,可以试试这个(不是真的相关但很有用),如果您使用的是chrome dev-tools,请检查来源 -tab,然后选择右侧你有手表和断点。 " 事件监听器断点"还有一个下拉列表。在那里,你会发现很多可能的事件。

尝试选中" 鼠标"的复选框。 - > " 点击"例如,然后单击页面上的某个位置。脚本将暂停(很可能在jquery中的某个位置),您可以直接在范围下拉列表下检查mouseevent。

答案 1 :(得分:1)

我在angular docs

中找到了什么

$event

  

ngClick和ngFocus等指令会公开$ event对象   在该表达式的范围内。该对象是一个实例   当jQuery存在或类似的jqLit​​e对象时jQuery Event Object

使用此对象,您可以使用各种属性和功能来帮助您管理事件处理。

例如:

event.stopPropagation()

阻止事件冒泡DOM树,防止任何父处理程序收到事件通知。