Search code examples
sammy.js

Sammyjs - Allow javascript redirects


I am experimenting with Sammy js and have it configured as shown below

 Sammy(function () {

        //get individual email details when an item is clicked
        this.get('#:EmailID', function () { self.openEmail(this.params.EmailID) });

        //get inbox view when default page is visited
        this.get('', function () { self.getInbox() });
    }).run();

The trouble is with the second catch all function that displays the inbox when no matches are found. It intercepts all javascript redirects. For example, I have a button that redirects the user to their account page as shown below

<a class="btn" href="~/Users/Account">Account</a>

However, when they click on this link, it is intercepted by Sammy and the getInbox() function is run. How can I allow the redirect to proceed if the URL in window.location is a different page?


Solution

  • Solved it by adding the URL of my base page to the default catch all function as shown below

    //get inbox view when default page is visited
    this.get('User/Messages', function () { self.getInbox() });
    

    This prevents the URL link from being trapped by the route if it points to a different page.