Livewire で Fomantic-UI のダイアログ(Modal)を使うには?

Laravel と Livewire をインストールして、Fomantic-UI のダイアログ(Modal)を使う手順。 プロジェクト名(modal)を決めて以下のコマンドを実行します。 インストール時にプロジェクト名のディレクトリが作成されます。 インストールの最後に sudo でパスワードの入力を求められます。 ↓下のメッセージが表示されてインストールは終わります。 sail のエイリアスを定義します。 Laravel のインストールはここまで。 「sail up」でコンテナを起動します。 ララベルのトップディレクトリで、Livewireパッケージ をインストールします。 次のコマンドを実行して、modalコンポーネント を生成します。 次の 2つ のファイルが生成されます。 ※因みに、renderメソッド を定義しなくても livewire.modal は呼び出されます。 生成された Modalコンポーネント のクラスとビューを次のように置き換えます。 app/Http/Livewire/Modal.php ↑ダイアログクラスには 表示状態(visible)と 承認ハンドラ(onApprove)のプロパティを持たせます。 resources/views/livewire/modal.blade.php ↑表示状態(visible)が false なら表示しません。approveボタン が押された場合、承認ハンドラ(onApprove)を実行します。ダイアログが非表示になるタイミングで、エレメントを削除して、表示状態(visible)を false に設定しています。 formsコンポーネント のクラスとビューを作成します。 app/Http/Livewire/Forms.php resources/views/livewire/forms.blade.php LiveRelationトレイト を作成します。 public/liveext.js を作成します。 resources/views/index.blade.php ファイル を作成します。 routes/web.php にルートを追加します。 …

Livewire で Fomantic-UI のダイアログ(Modal)を使うには? Read More »

JavaScript の querySelector について

↑気を付けておくところは「document.」を付けることです。無いとエラーになります。 querySelector はエレメントを1つ返します。 querySelectorAll は複数のエレメントを配列で返します。 querySelector と querySelectorAll のサンプルプログラムです。

Livewire @parentディレクティブ

@parent ディレクティブ は app/Providers/AppServiceProvider.php に定義します。 親コンポーネントだけにイベントを送るには @parent.emitSelf を使います。@parent.emit だと全体にイベントが送られてしまいます。 ↑これは。。。ようするに emitUp ↓です(爆)。親だけに送るから少し違いますね。 or

Livewire @js ディレクティブ とは?

以下のソースは、ボタンを押すと、photo_pathプロパティ をコンソールログに出力するというものです。 ボタンを押すと、コンソールログには null が出力されます。 scriptタグ は wire:ignore 的な扱いになっているので(私的に)、photo_pathプロパティ を更新しても、初期状態の null が出力されます。そうすると、scriptタグ内の @jsディレクティブ は初期状態の値しか取得できないのかな?と思いました。 scriptタグ に id属性 を与えると反応するようになりますが、これも少し違う気がします。。。 ↑addEventListener なので、2行出力されます。 以下のように、onClickハンドラ に書けば最新の情報を出力することはできました。 scriptタグ内 で 最新の @js を扱うにはどうすればいいのか?ここは今後調査していこうと思います。

Livewire JavaScript で emitSelf、emitUp のやり方

wire:click で自身のアクションメソッドを実行できます。 ↑上は↓下のように @this.debug と書くことができます。 JavaScript で自身へイベントを送るには「@this.emitSelf」と書きます。 JavaScript で親へイベントを送るには「@this.emitUp」と書きます。

Livewire @thisディレクティブ

@thisディレクティブの定義は↓こちら。vendor/livewire/livewire/src/LivewireBladeDirectives.php 今まで自身のアクションメソッドを呼び出すときは、↓下のように、findを使って呼び出していましたが @this だけでいけちゃいます↓↓↓ P.S.「$this->id」を「$_instance->id」に置き換えることができることを確認しました。

Scroll to Top