問題タブ [phoenix-live-view]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
161 参照

elixir - ライブビューのリロード後に選択が消える

LiveView レンダリングで奇妙な問題が発生しました。流れとしては次のようになります。

  1. 最初の選択でデフォルト以外のオプションを選択し、2 番目の選択をデフォルトのままにします -> 検索フォームを LiveView に送信します -> 新しいエントリを含むリロードされた画面で、最初の選択のデフォルト オプションを再度選択し、2 番目の選択をデフォルトのままにします -> 送信します検索フォームから LiveView へ -> 2 番目の選択が消える
  2. 2 番目の選択でデフォルト以外のオプションを選択し、最初の選択をデフォルトのままにします -> 検索フォームを LiveView に送信します -> 新しいエントリを含むリロードされた画面で、2 番目の選択のデフォルト オプションを再度選択し、最初の選択をデフォルトのままにします -> 送信します検索フォームから LiveView へ -> 最初の選択が消える
  3. 両方の選択からデフォルト以外のオプションを選択します -> 検索フォームを LiveView に送信しますclear-> イベントを LiveView に送信するフィールドをクリアします -> 最初と 2 番目の選択のデフォルト値で検索フォームを LiveView に送信します -> 両方の選択が消えます

消えると言うことは、本当に消えることを意味します-クロム開発者ツール内の要素では、セレクターがあるべき場所が空です。

フィールドに値を割り当てる際に問題が発生したと思います。選択を生成するためのコードは次のとおりです。

@form_vals以前のリクエストからの値で、フォームがその状態を維持するためにロードされます。合格したと確信していますが、形式が適切かどうかはわかりません。LiveView に入るパラメーターの形式:

LiveView を次のように残すパラメータの形式form_vals:

イベントを LiveView に送信するときclear、クリア フィールド値で応答するだけです。

セレクターが消えている理由を誰かが知っている場合は、教えていただければ幸いです。私は本当に立ち往生していて、どうすればいいのかわかりません。

0 投票する
1 に答える
2244 参照

elixir - LiveView で現在のパスを取得する

通常のルートでは:

get /index, MyController, :index

Plug.Connの path_info 関数からルートを簡単に取得できます。

ただし、ライブルートがある場合、現在のパスを取得するにはどうすればよいですか?

live /index, IndexLive

0 投票する
1 に答える
1148 参照

elixir - POST で NoRouteError を発生させるための Phoenix LiveView form_for

それで、フェニックスライブビューアプリケーションを作ろうとしていて、それを既存のプロジェクトに実装しようとしたときに問題に遭遇しました。phoenix.html が提供する form_for を使用してフォームを作成すると、ライブ ソケットでサーバーにポスト リクエストが送信されます。デモを正常に実行し、ライブビューに投稿できるようになったので、これは起こるべきではないと思います。エラーは次のとおりです。

これがライブコントローラーです: (test_live.ex)

ここに test.html.leex があります:

そこで、html と属性だけを使用したフォームである別のことを試してみました。

驚いたことに、このフォームでは no route エラーは発生しませんでした。しかし、test_live.ex で定義した handle_event 関数はまだ呼び出されませんでした。

これが私のルーターです:

どんな助けでも大歓迎です。ありがとう!