EventEmitterでパラメータを渡す
2023-11-25 17:56:56
質問
DOM要素上でjQueryUIのソータブルを初期化するディレクティブを持っています。jQueryUI sortableはまた、特定のアクションでトリガーするコールバックイベントのセットを持っています。例えば、あなたが 開始 または 停止 のようなソート要素があります。
このようなイベントからの戻りパラメータを
emit()
関数に渡したいのです。そうすれば、コールバック関数で何が起こったかを実際に見ることができます。ただ、パラメータを
EventEmiiter
.
現在、以下のようにしています。
私のディレクティブです。
@Directive({
selector: '[sortable]'
})
export class Sortable {
@Output() stopSort = new EventEmitter();
constructor(el: ElementRef) {
console.log('directive');
var options = {
stop: (event, ui) => {
this.stopSort.emit(); // How to pass the params event and ui...?
}
};
$(el.nativeElement).sortable(options).disableSelection();
}
}
そして、これは私の
Component
で、これはディレクティブによって生成されたイベントを使用します。
@Component({
selector: 'my-app',
directives: [Sortable],
providers: [],
template: `
<div>
<h2>Event from jQueryUI to Component demo</h2>
<ul id="sortable" sortable (stopSort)="stopSort(event, ui)">
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li>
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li>
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li>
</ul>
</div>
`
})
export class App {
constructor() {
}
stopSort(event, ui) { // How do I get the 'event' and 'ui' params here?
console.log('STOP SORT!', event);
}
}
どうすれば
event
と
ui
のパラメータは、私の
stopSort()
関数に渡すことができますか?
今までのデモを紹介します。 http://plnkr.co/edit/5ACcetgwWWgTsKs1kWrA?p=info
どのように解決するのですか?
EventEmitterは1つの引数をサポートしており、その引数は
$event
としてイベントハンドラに渡されます。
に渡すときは、パラメータをイベントオブジェクトにラップしてください。
emit
:
this.stopSort.emit({ event:event, ui: ui });
そして、イベントを処理する際に
$event
:
stopSort($event) {
alert('event param from Component: ' +$event.event);
alert('ui param from Component: ' + $event.ui);
}
関連
-
[解決済み] EventEmitter のメモリリークの可能性が検出された
-
[解決済み] Angular:*ngClassを使った条件付きクラス
-
[解決済み】Delegation: AngularのEventEmitterまたはObservable
-
[解決済み】ルーターリンクでクエリパラメータを渡す方法
-
[解決済み] 継承と依存性注入
-
[解決済み] AngularでEventEmitterに2つのパラメータを渡すには?
-
[解決済み] Angularでコンポーネントをリフレッシュする方法
-
[解決済み] AngularでFormGroupに動的にaddControlを追加する
-
[解決済み] angular2でdata-*属性にバインドする方法は?重複
-
[解決済み] Angular6でパスワードの検証を確認する [重複]。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Angular 4/5/6 グローバル変数
-
[解決済み] angular-cliのビルドでカスタムファイルをインクルードするには?
-
[解決済み] 簡単なパイプで小数点以下2桁に制限する
-
[解決済み] Angular / Angular Materialでmat-horizontal-stepperのステップをプログラムで移動させることは可能ですか?
-
[解決済み] 文字列|ヌル'型の引数は、文字列'型のパラメータに代入できません。タイプ 'null' はタイプ 'string' に割り当てられません。
-
[解決済み] ExpressionChangedAfterItHasBeenCheckedError: チェックされた後に、式が変更されました。以前の値: 'undefined'
-
[解決済み] Typescriptで文字列をbooleanに変換する方法 Angular 4
-
[解決済み] Angular : ルートへの手動リダイレクト
-
[解決済み] Angular Material 2 ネストされたオブジェクトによるデータテーブルのソート
-
[解決済み] Angular 2+でspec.tsファイルなしでComponentを生成する。