当前位置: 首页 > 面试题库 >

在angularjs中如何访问触发事件的元素?

谢哲瀚
2023-03-14
问题内容

我在我的Web应用程序中同时使用了Bootstrap和AngularJS。我很难让两个人一起工作。

我有一个元素,它具有属性 data-provide="typeahead"

<input id="searchText" ng-model="searchText" type="text"
       class="input-medium search-query" placeholder="title"
       data-provide="typeahead" ng-change="updateTypeahead()" />

我想data- source在用户在字段中输入时更新属性。该函数updateTypeahead已正确触发,但是除非我使用$('#searchText'),这是jQuery方式,而不是AngularJS方式,否则我无法访问触发事件的元素。

使AngularJS与旧式JS模块一起工作的最佳方法是什么。


问题答案:
 updateTypeahead(this)

不会将DOM元素传递给函数updateTypeahead(this)。这里this将参考范围。
如果要访问DOM元素,请使用 updateTypeahead($event)。在回调函数中,您可以通过获取DOM元素 event.target

请注意:ng-change函数不允许将$ event作为变量传递。



 类似资料:
  • 问题内容: 我想对一个模拟占位符的指令进行单元测试,其中仅在键入/按下事件时才清除输入值。 问题答案: 您需要以编程方式创建一个事件并触发它。为此,将jQuery用于单元测试非常有用。例如,您可以编写一个简单的实用程序,如下所示: 然后在您的单元测试中使用它,如下所示: 您可以在http://angular-ui.github.io/bootstrap/项目中查看此技术的实际应用:https :

  • 问题内容: 我正在尝试从触发元素的click事件。 通常的做法是隐藏被称为丑化的野兽,并通过其他方式触发其点击事件。 问题答案: 如果您的输入和按钮是同级(在您的情况下是OP): 使用指令将按钮的单击绑定到文件输入,如下所示:

  • 问题内容: 我已使用将事件附加到文本框。它工作正常。当我想通过另一个函数以编程方式触发事件时,出现了我的问题。 我该怎么做? 问题答案: 您可以在IE 8或更低版本上使用fireEvent,在大多数。要创建您要触发的事件,可以使用或取决于浏览器。 这是一段不言自明的代码(来自原型),它在上触发事件:

  • 问题内容: 这可能是一个奇怪的情况,以前没有人曾经历过,但是我是偶然地发布此消息,因为有人知道我不知道的东西。 我正在使用jQuery 2.0.3和AngularJS。 如果我有这样的锚点: 然后它起作用了,当我单击它时,它输出“ click”。但是,当我将其放入包含该属性的模板中时,jQuery突然无法启动。如果我将脚本和锚点放在模板内部,则确实会触发。 使用使用模板的指令也是如此。这很奇怪,并

  • 我有一个表单,其中有一条错误消息,如下例所示: http://codepen.io/anon/pen/dYWyEM?editors=101 重现问题的步骤如下: 打开coDepen链接后, 1)专注于输入领域 2) 按提交按钮 3) 由于首先触发模糊事件,因此首先隐藏错误消息,从而更改提交按钮的位置。因此,点击事件根本没有注册,我需要再次点击以提交表单。 有没有办法先发送提交事件? 我需要检测触发

  • 问题内容: AngularJS访问cookie的方式是什么?我看到过同时引用Cookie的服务和模块的信息,但没有示例。 有没有,或者没有AngularJS规范方法? 问题答案: 该答案已更新,以反映最新的稳定angularjs版本。一个重要的注意事项是周围有薄薄的包装纸。它们几乎相同,因为它们仅与会话cookie一起使用。虽然,这回答了原始问题,但是您可能还需要考虑其他解决方案,例如使用loca