Magento 2: Jak wykryć zmianę kroku kasy


10

Próbuję znaleźć najlepszą metodę wykrywania skokowej zmiany w kasie Magento 2. Na przykład przejście od szczegółów wysyłki do płatności lub odwrotnie.

Zrobiłem trochę kopania i vendor/magento/module-checkout/view/frontend/web/js/model/step-navigator.jsmogę użyć, next()który odpala przycisk Kontynuuj, a navigateTo()który uruchamia się, gdy użytkownik kliknie krok kasowania bezpośrednio - ale obie metody wydają się dość pospieszne, musi istnieć czystszy sposób na wykrycie zmiany kroku, niezależnie od tego, jak i który krok .

Miałem nadzieję na stepChange()funkcję lub coś podobnego, który zadziała za każdym razem, gdy nastąpi zmiana kroku kasy.

Moje pytanie:

Jaka jest najlepsza metoda wyzwalania mojego niestandardowego JS, gdy nastąpi zmiana kroku kasy?

Odpowiedzi:


13

Możesz zarejestrować uchwyt do zmiany kodu skrótu, tj $(window).hashchange(callBack).

Tak dzieje się w Magento_Checkout/view/frontend/web/js/view/progress-bar.js:

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

Powoduje to, że stepNavigator.handleHashfunkcja jest wykonywana za każdym razem, gdy zmienia się krok, ponieważ zmiana kroków przy użyciu nextlub navigateTozmiana skrótu okna.


Dzięki Aaron, przepraszam, że nie dałem całej nagrody, nie wiedziałem, że był na to termin.
Ben Crook,

0

Dobre pytanie. Nie wiem, co jest najlepszym sposobem (jestem zainteresowany innymi odpowiedziami), ale myślę, że dodanie niestandardowego zdarzenia do .next()lub .isProcessed()funkcji i przekazanie do niej bieżącego kroku może być całkiem dobrym rozwiązaniem.


1
Nie sądzę, aby dodanie go do następnego było dobrym pomysłem, ponieważ wtedy nie strzeliłby, gdy cofniesz się o krok
Ben Crook
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.