一尘不染

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

angularjs

我在我的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模块一起工作的最佳方法是什么。


阅读 228

收藏
2020-07-04

共1个答案

一尘不染

 updateTypeahead(this)

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

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

2020-07-04