Giter Club home page Giter Club logo

Comments (4)

millermedeiros avatar millermedeiros commented on July 20, 2024

the execution is based on the matched.add order or can be specified by setting the matched signal listener priority (1st example of advanced features) - you can stop the dispatch by calling route1.matched.halt() or by simply returning false on the signal handler (Stop/Halt Propagation examples on same link).

you can use a function to validate the route if you need to check something before dispatching the matched signal:

var route1 = crossroads.addRoute('/news/{id}');
route1.rules = {
  id : function(value, request, valuesObj){
    return isUserAuthenticated(); //if false it won't match route
  }
};

using the function to validate is probably the recommended approach since you can't ensure a specific listener will always be the first one to be called (you can add another listener with a higher priority later that will get executed before)

currently the rules object doesn't have any "magic" property that validates the whole route, maybe I should add it for cases where you don't have any "{variable}" but still need to do some kind of validation based on the application estate.. - I created a new issue (#14) for it.

you can find more info about how to use the Route.rules on the documentation.

cheers.

from crossroads.js.

mhemesath avatar mhemesath commented on July 20, 2024

Thanks man, this looks awesome and is exactly what I need! I saw it in JavaScript Weekly. Good work! Integrating into my project.... now!

from crossroads.js.

mhemesath avatar mhemesath commented on July 20, 2024

Could you validate off the section? Seems like a feasible interim solution until you get your magic property in.

var route1 = crossroads.addRoute('/{section}/{id}');
route1.rules = {
  section : function(value, request, valuesObj){
    return isUserAuthenticated() ? ["news"] : []
 }
};

from crossroads.js.

millermedeiros avatar millermedeiros commented on July 20, 2024

the validation function should return true or false.

route1.rules = {
  section : function(value, request, valuesObj){
    return (isUserAuthenticated() && value == "news");
 }
};

example above will validate only if user is authenticated and section fragment is "news".

from crossroads.js.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.