search

Home  >  Q&A  >  body text

angular.js - How should a single-page application (ng/vue) monitor when the user leaves the current page (or route)?

Scenario description: In a certain route of ng, when the user leaves the current route, the user needs to be prompted to confirm whether to leave

My doubt: If it is an ordinary application, we can use js to determine whether the user wants to leave, but in a single-page application, all jumps and exits are actually on one page. I want to determine whether the user leaves. The current route, but the method provided by ng for public accounts to leave the route is not found

Please give me some ideas~

滿天的星座滿天的星座2814 days ago1253

reply all(4)I'll reply

  • 淡淡烟草味

    淡淡烟草味2017-05-15 17:06:53

    I only know that Vue can

    route: {
                deactivate() {
                    ...
                }
            }

    reply
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-15 17:06:53

    ui-router has an event that can monitor state changes, and the parameters in the callback function can record the current page
    $rootScope.$on('$stateChangeStart', function (event, toState, fromState){
    });

    reply
    0
  • 迷茫

    迷茫2017-05-15 17:06:53

    If ui-router is used as the routing system in ng. You can use the event system of ui-router to make corresponding business logic for changes in routing status.

    $rootScope.$on('$stateChangeStart',
    function(event, toState, toParams, fromState, fromParams){
        event.preventDefault();
        // transitionTo() promise will be rejected with
        // a 'transition prevented' error
    })

    For details, please refer to $state in ui-router

    reply
    0
  • PHP中文网

    PHP中文网2017-05-15 17:06:53

    JS natively monitors whether the page hash changes through the hashchange event. In single-page applications, many frameworks will encapsulate this method into a hook function.

    reply
    0
  • Cancelreply