1. ホーム
  2. javascript

[解決済み] angularjsで、イベントをトリガーした要素にアクセスする方法は?

2023-02-24 07:34:40

質問

私は自分のウェブアプリケーションでBootstrapとAngularJSの両方を使用しています。この2つを一緒に動作させるのに少し苦労しています。

要素があり、その要素には属性 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を変数として渡すことができません。