Comments (4)
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.
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.
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.
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)
- routes with query params HOT 2
- How to use routing libraries like crossroads js with preload js?
- Non-encoded slashes (/) on query params choosing wrong pattern
- Why do `setting window.location.hash` and `hasher.setHash` result in different behavior of question mark `%3F`?
- URL param names are lost : route handler should get param object with names as fields
- Route Losing Reference After First Call HOT 1
- Best way to detect param changes in the same route
- Bower update failing HOT 3
- test
- Support of native URLs HOT 2
- Support of wildcard in the beginning of the URL HOT 2
- destroy function HOT 1
- Getting params as one object not on callback arguments HOT 1
- Is this project still alive? HOT 5
- Trailing slashes are appended to routes that have query params HOT 1
- Empty url in rules
- Crossroads - 404 on route HOT 1
- Nested routes
- [ SUGGESTION ] .routed.addBefore() and .routed.addAfter()
- Unmatched routes HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from crossroads.js.