[解決済み】AngularでjQueryを使用するには?
2022-03-25 07:05:02
質問
誰か教えてください。 jQuery と アンギュラー ?
class MyComponent {
constructor() {
// how to query the DOM element from here?
}
}
を操作するような回避策があることは承知しています。 クラス または イド を使うことができますが、もっとすっきりした方法を期待しています。
どのように解決するのですか?
Angular2からのjQueryの使用は、ng1に比べて簡単です。TypeScriptを使用している場合は、まずjQueryのtypescriptの定義を参照することができます。
tsd install jquery --save
or
typings install dt~jquery --global --save
TypescriptDefinitions は必要ありません。
any
の型として
$
または
jQuery
angular コンポーネントでは、テンプレートの DOM 要素を
@ViewChild()
ビューが初期化された後に
nativeElement
プロパティを作成し、jQueryに渡します。
宣言する
$
(または
jQuery
をJQueryStaticとして使用すると、jQueryへの型付けされた参照を得ることができます。
import {bootstrap} from '@angular/platform-browser-dynamic';
import {Component, ViewChild, ElementRef, AfterViewInit} from '@angular/core';
declare var $:JQueryStatic;
@Component({
selector: 'ng-chosen',
template: `<select #selectElem>
<option *ngFor="#item of items" [value]="item" [selected]="item === selectedValue">{{item}} option</option>
</select>
<h4> {{selectedValue}}</h4>`
})
export class NgChosenComponent implements AfterViewInit {
@ViewChild('selectElem') el:ElementRef;
items = ['First', 'Second', 'Third'];
selectedValue = 'Second';
ngAfterViewInit() {
$(this.el.nativeElement)
.chosen()
.on('change', (e, args) => {
this.selectedValue = args.selected;
});
}
}
bootstrap(NgChosenComponent);
このサンプルはplunkerで公開されています。 http://plnkr.co/edit/Nq9LnK?p=preview
tslint は次のような文句を言うでしょう。
chosen
この問題を解決するには、カスタムの *.d.ts ファイルに JQuery インターフェイスの定義を追加します。
interface JQuery {
chosen(options?:any):JQuery;
}
関連
-
[解決済み] jQuery が Ajax 呼び出しの終了を待って戻るようにするにはどうすればよいですか?
-
[解決済み] jQuery動的セレクタ
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] event.preventDefault() vs. return false
-
[解決済み] jQueryでページを更新するにはどうすればよいですか?
-
[解決済み] jQueryで要素にスクロールする
-
[解決済み] GoogleのホストされたjQueryを使用する最良の方法、しかしGoogleの私のホストされたライブラリにフォールバックすることは失敗します。
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Bootstrap - Uncaught TypeError: 未定義のプロパティ 'fn' を読み取れない。
-
[解決済み] jqueryで日付を比較する
-
[解決済み] jQuery - 不正な呼び出し
-
[解決済み] クラス別のjquery onclick
-
[解決済み] ネストした多次元のjsonオブジェクトの書き方
-
[解決済み] JQuery Fancyboxが動作しない
-
[解決済み] jQueryを使って下までスクロールさせる
-
[解決済み] Jquery テーブルの行を隠す
-
[解決済み] Javascriptのrequire()関数がReferenceError: require is not definedを発生させる。
-
[解決済み] Bowerとnpmの違いは何ですか?