Magento 2: Як виявити зміну кроку замовлення


10

Я намагаюся знайти найкращий метод виявлення крокової зміни в касі Magento 2. Наприклад, перехід від деталей доставки до оплати або навпаки.

Я здійснив копання, і vendor/magento/module-checkout/view/frontend/web/js/model/step-navigator.jsя можу використовувати, next()які пожежі на кнопці "Продовжувати", а navigateTo()які - після того, як користувач безпосередньо натискає на касі підкачки - але обидва способи здаються досить хиткими, повинен бути більш чіткий спосіб виявити зміну кроку незалежно від того, як і який крок .

Я сподівався на stepChange()функцію чи щось подібне, яке спрацьовує кожного разу, коли відбудеться зміна кроку оформлення каси.

Моє запитання:

Який найкращий спосіб запустити мій JS, коли відбудеться зміна кроку оформлення каси?

Відповіді:


13

Ви можете зареєструвати ручку, коли змінюється хеш - код, тобто $(window).hashchange(callBack).

Ось що відбувається в Magento_Checkout/view/frontend/web/js/view/progress-bar.js:

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

Це призводить stepNavigator.handleHashдо виконання функції кожного разу, коли змінюється крок, оскільки змінюються кроки, використовуючи nextабо navigateToзмінюючи хеш вікна.


Дякую Аарону, вибачте, що не дав повної винагороди, я не знав, що настав термін.
Бен Крук

0

Хороше питання. Я не знаю, який найкращий спосіб (мене цікавлять інші відповіді), але я думаю, що додавання користувальницької події до функції .next()або .isProcessed()функції та передача їй поточного кроку може бути досить хорошим рішенням.


1
Я не думаю, що додавання його до наступного - це гарна ідея, оскільки тоді воно не запуститься, коли ви повернетесь крок назад
Бен Крук,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.