How well does Concrete5 (especially 5.7) play with AngularJS?
Permalink
I'd like to extend the functionality of Concrete5 by including AngularJS. Is this possible and what kind of issues should I anticipate (if any)?
I don't see any reason why it has to be an either/or situation, like Mainio was talking about. In fact, I'm currently thinking about doing something similar.
Let's say you were doing a website that was mostly C5 for the majority of the pages... but some of the pages have database driven content using single pages. You may decide to use Jordan's great CRUD as a starter for this (https://github.com/jordanlev/c5_boilerplate_crud). Then, when creating the front end version, you want to make it look and flow better, and not have constant page reloads, or want some nice templating that's easy to update. You could use Angular for that, and just use concrete5 actions for the calls to the database. In this way, you get the great C5 tools for users to edit the vast majority of the site, a great single page backend editing tools using the crud, and angular and clean looking js for the frontend for some of the single page content.
I'm actually thinking about using this concept for a site I've had in development (on hold due to the customer) for a while, which uses a lot of image galleries and voting on them, etc, etc, etc. This required single pages for the content, but angular would really speed up the responsiveness of the front end pages, and not require a lot of reloads, and also not require a ton of specialized ajax calls which could be better handled by angular.
In this case, I think it's absolutely merging all the best tools for their specific jobs, and using the extensibility of C5 to it's best effect, and it speaks to the design of C5 that you CAN use it in so many varied ways.
(Edit: one caveat, be aware that using actions will require you to send a token with the request, as that is a requirement of C5 to combat cross site scripting issues. So you will likely have that inline with the page. And likely the links to the actions, since you will need to get the tools url you can call. So some of it will be broken up a bit)
Let's say you were doing a website that was mostly C5 for the majority of the pages... but some of the pages have database driven content using single pages. You may decide to use Jordan's great CRUD as a starter for this (https://github.com/jordanlev/c5_boilerplate_crud). Then, when creating the front end version, you want to make it look and flow better, and not have constant page reloads, or want some nice templating that's easy to update. You could use Angular for that, and just use concrete5 actions for the calls to the database. In this way, you get the great C5 tools for users to edit the vast majority of the site, a great single page backend editing tools using the crud, and angular and clean looking js for the frontend for some of the single page content.
I'm actually thinking about using this concept for a site I've had in development (on hold due to the customer) for a while, which uses a lot of image galleries and voting on them, etc, etc, etc. This required single pages for the content, but angular would really speed up the responsiveness of the front end pages, and not require a lot of reloads, and also not require a ton of specialized ajax calls which could be better handled by angular.
In this case, I think it's absolutely merging all the best tools for their specific jobs, and using the extensibility of C5 to it's best effect, and it speaks to the design of C5 that you CAN use it in so many varied ways.
(Edit: one caveat, be aware that using actions will require you to send a token with the request, as that is a requirement of C5 to combat cross site scripting issues. So you will likely have that inline with the page. And likely the links to the actions, since you will need to get the tools url you can call. So some of it will be broken up a bit)
Hi cryophallion,
If you end up using Angular or something similar. Please consider writing a tutorial or How-To about you used it.
A lot of people would benefit from it.
If you end up using Angular or something similar. Please consider writing a tutorial or How-To about you used it.
A lot of people would benefit from it.
Am no expert on this, but 5.7 has a new 'assets' layer that is intended to handle dependencies better--and here the intent is to help things to play more nicely.
That being said, I don't see any examples where anyone has tried it, so you may be on your own...
https://www.concrete5.org/documentation/developers/5.7/designing-for...
That being said, I don't see any examples where anyone has tried it, so you may be on your own...
https://www.concrete5.org/documentation/developers/5.7/designing-for...
And if you want to do something smaller than a full blown one page app, I would be asking myself, do I really need Angular for this? Does it make things easier or add more unnecessary complexity? And as above, if it seems to get big, is concrete5 the correct backend for your application?
Would need to know more about your project in order to evaluate any of those questions from my perspective but maybe they'll guide you to think it through once again.