I am using Angular.js and so far I used routes like www.oursite.com*/#!*
/angularControllerRoute/angularAction/otherparameters

Where angularControllerRoute and angularAction are my way to indicate a
generic route that I have on the frontend using the Angular UI Router.

I want to transition to use the HTML5 pushstate
<http://diveintohtml5.info/history.html> and this implies that my routes
will be like:
www.oursite.com/angularControllerRoute/angularAction/otherparameters

So far I had these routes:

...

Router::connect(
    "/{$prefix}/:controller",
    array('action' => 'index')
);
Router::connect(
    "/{$prefix}/:controller/:action/*",
    array()
);

Router::connect(
    "/{$prefix}/**",
    array('controller' => 'Main', 'action' => 'index')
);

Now though, they are not going to work.

In particular all the /angularControllerRoute/angularAction/otherparameters
must load
Main::index. Currently we get an exception says that angularControllerRoute
is missing.

I thought to the following solutions:

   - When a NoFoundException is raised and it is not an AJAX,
   load Main::index. I am throwing a few NoFoundException from the application
   and I am not sure what the implication may be.
   - Write a  Router::connect for each angularControllerRoute and point it
   to array('controller' => 'Main', 'action' => 'index') That is a little
   annoying since each time we add a route on the frontend we need to add a
   route in CakePHP.
   - Remove the default routes and add a custom route. Practically I wanted
   something like
   Router::connect("/{$prefix}/**",
                   array('controller' => 'Main', 'action' => 'index'),
                   array('routeClass' => 'CustomRoute')
   And check if the controller/action exists and if it does load that
   route, otherwise load Main::index. I think this would be my *favorite
   solution*.  What is the the fastest way to check if a Controller::Action
   exists?

Am I missing something?

I am using CakePHP 2.5.3.

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

Reply via email to