Closed stephenhandley closed 12 years ago
Hi, I'm afraid this is actually a "feature". It may sound strange, but I know a few people (including myself) that use multiple matches to render different parts of the page in certain applications.
For example, content is rendered by a "list.html(?:....ecc)" regexp, while header and footer are generated through a "." regexp that matches every page.
Mobile websites may also use this technique to track page views through analytics (using a general handler for pageshow that calls _trackPageview).
However, I'm planning to add a status variable in the router, that counts how many handlers are called for the current event. In your example, the status variable would hold 0 when Controller.blahs_year is executed during beforeshow, and 1 when Controller.blahs is called. Same thing for the hide event (it's resetted to 0 when the event changes). Hope it sounds a viable solution to cover scenarios like the one you presented.
Cheers, Andrea
Hi Andrea,
Thanks for the response.. I was thinking that the behavior was probably on purpose right after filing the issue. I can see how that flexibility makes sense in those cases.
As far as the router status variable goes, if its possible, I think a mobileinit configuration option would probably be cleaner for usage than a status counter (or at least in addition to). To specify only a single match being allowed, users could do something like:
$(document).bind("mobileinit",function(){
$.mobile.jqmRouter={
firstMatchOnly: true
};
});
which would result in only the first match being dispatched to. firstMatchOnly would default to false, which would result in the current behavior.
Thanks! Stephen
Hi, a configuration option makes much more sense than a status variable, thank you for the idea.
I'll try to push the fix in the next few hours.
Cheers, Andrea
Awesome, thanks!
I'm seeing multiple routes matched when they share a common prefix. Seems the first defined route should take precedence:
I'm getting around it by changing the route hash, but I think it would be better if only a single route was matched.