Magento 2:チェックアウトステップの変更を検出する方法


9

Magento 2のチェックアウトにおけるステップの変化を検出する最良の方法を見つけようとしています。たとえば、配送の詳細から支払い、またはその逆の場合です。

私はいくつかの掘削を行い、でてきたvendor/magento/module-checkout/view/frontend/web/js/model/step-navigator.js私が使用することができnext()た火災ボタンを継続し、上のnavigateTo()どの火災直接checkoutstepをユーザーがクリックするとき-しかし、どちらの方法も、むしろハックようだが、ステップ変化を検出するためのクリーンな方法がなければならないに関係なく、どのようにそしてどのステップ

私はstepChange()、チェックアウトステップの変更が発生するたびに起動する関数または同様のものを期待していました。

私の質問:

チェックアウトステップの変更が発生したときにカスタムJSをトリガーする最良の方法は何ですか?

回答:


12

ハッシュコードが変更されたときのハンドルを登録できます$(window).hashchange(callBack)

これは何が起こるかですMagento_Checkout/view/frontend/web/js/view/progress-bar.js

$(window).hashchange(_.bind(stepNavigator.handleHash, stepNavigator));

これにより、ウィンドウのハッシュstepNavigator.handleHashを使用nextまたはnavigateTo変更するステップを変更するため、ステップが変更されるたびに関数が実行されます。


Aaronに感謝します。賞金を全額提供しなかったことをお詫びします。
Ben Crook

0

良い質問。最善の方法はわかりませんが(他の回答に興味があります)、.next()or .isProcessed()関数にカスタムイベントを追加して現在のステップに渡すと、かなり良い解決策になると思います。


1
あなたがバックステップに行くとき、私は、次にそれを追加すると、それが火災ではないと同じように良いアイデアだとは思わない
ベン・クルック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.