Powerful framework, with simple templating and two-way data binding. Performance seems good, works well cross-platform, and has great backwards compatibility for older browsers. Review collected by and hosted on G2.com.
A lot of things are changing in version 2, which will require massive refactoring to upgrade. You have to take the good with the bad in the name of progress. Review collected by and hosted on G2.com.
What I like best about AngularJS is that its a lightweight framework that is super powerful. I mean, the manipulation of data between the controllers and views really breathes life into my web apps. Not to mention the amount of third party plugins and modules generated by the javascript community. It is a really extensible front-end framework. Review collected by and hosted on G2.com.
Well even though the extensibility of AngularJS is a huge selling point it also means that out of the box AngularJS can be a bit bland. Once you start to become a competent web developer you are start wanting your web framework to already have livereload built into it. Further, the question of which sever or database to use comes up very quickly in the AngularJS developers career, and few strong choices are there besides switch to a full MEAN stack. Review collected by and hosted on G2.com.
Ease of use of two way data binding: You setup your data in your controller, tell the template to use that data, and data is synchronized between the user interface, and the data model.
Its modular design allows creating multiple components in multiple files, so to make the application more manageable than ever. Review collected by and hosted on G2.com.
Javascript is not the best language to do anything, and to be sure you do not make any silly mistakes you must run your code through ESLint, and it might take a while to get accustomed to the meaning of the error messages. Luckily enough there are AngularJS modules for ESLint.
Its components still to not use shadow DOM (that Polymer uses) so CSS cannot be embedded inside templates, and they can interfere with each other if the developer does not care enough. Review collected by and hosted on G2.com.
It's easy to learn and start implementing a project. With AngularJS you can save a lot of time on common development things that other popular libraries doesn't have a good support. Review collected by and hosted on G2.com.
The code looks weird when you have to inject many dependencies. The function declaration of the controller looks messy when it happens. But if you follow the best practices you can avoid such of things. Review collected by and hosted on G2.com.
I'll start this off by saying that I'm a full-time front end dev who's spent the past 2+ years in AngularJS. I love it, I know most of its quirks. But AngularJS 1.x's days are numbered. (I've covered 2.x in a separate review: Angular.io)
Pros:
* makes most UI dev fast, simple and -- dare I say...fun
* still actively maintained
* there's a wealth of knowledge out there now
* pretty logical, once you get over the hump of the learning curve Review collected by and hosted on G2.com.
* Nearly impossible to track `$digest` errors in production. Oh my goodness, it's a nightmare.
* The learning curve. It was steep, coming from a few years of (comparatively DIY) backbone.js
* Next-gen webapp frameworks will make AngularJS 1.x obsolete Review collected by and hosted on G2.com.
Its separation of concerns as well as its mindset for organizing a code, separating it into Services, Controllers, Directives and Filters. It makes developing a web system a lot easier and intuitive to assemble. Review collected by and hosted on G2.com.
Sometimes when something goes wrong with the code, everything breaks and there's not a whole lot of ways to find what's wrong, one has to go along with one's intuition and experience.
They sure have added a lot of feedback when one forgets, for instance, to add a dependency injection, the error rendered at the browser's console provides a link whereby one can access AngularJS documentation, which is neat. Review collected by and hosted on G2.com.
The ability to create models and directives really simplifies writing code. Seems to be lots of documentation out there. Review collected by and hosted on G2.com.
Slightly difficult to integrate with jinja templates due to them both using {{ }} syntax Review collected by and hosted on G2.com.
Angular is super easy to use, incredibly fast and integrates nicely with everything. I started developing interactive web apps with jQuery but after finding about AngularJS I never went back. It allows me to do my job so much faster than I usually would.
From building interactive web apps to hybrid apps, AngularJS excels in the javascript development. You can easily integrate and start using in less than a minute. The built in features makes my job so much easier.The integration with HTML is so flawless and nice that reduces my work and headache by an enormous amount. I'm looking forward for the future generations of AngularJS. Review collected by and hosted on G2.com.
Angular is great but sometimes it can be a bit buggy. I had two big issues while developing with it and it took me a while to understand what was going on. It also lacks a bit of organization as you can pretty much code everywhere. This was improved in AngularJS 2.
It is hard to complain about angularjs as it does the job and the performance is incredible. Review collected by and hosted on G2.com.
The simple fact it makes coding Single Page Applications (websites) it's just enough to make it a very versatile and needed tool in every developers toolbox. Also, being able to have MVC (Model-View-Controller) paradigm to build up from the ground your own stuff is another good reason to consider this framework as a go-to when starting a new web application. Review collected by and hosted on G2.com.
Debugging AngularJS code can be a REAL pain, as it doesn't always triggers red flags when something major is going on. Scope inheritance can be another major issue if you don't code in a proper way, leaving you without that JS feel of "freedom" we always get. Review collected by and hosted on G2.com.
Modules - key to build and separate you app in modules based on responsibilities.
Dependency injection - Make easy to retrieve services from other modules to perform some logic.
Directives - move web app towards a more component base app.
Interceptors - intercept errors globally or by ajax call before the error is thrown.
Transformers - catch ajax responses and transform responses on your wild (specially helpful when json response has a non-logic form and you want to work with a different json structure). Review collected by and hosted on G2.com.
Official website - provides enough documentation for making easy web apps and basic understanding but some topics can be difficult to find or difficult to understand in the way they are explain.
Communication channels between directives - while there are multiple solutions for managing the communication between directives (shared-service, share-scope, arguments to directives, broadcast & emit) all of them have drawbacks that attack maintainability or reusability.
Prototype chain and double binding - Some issues will appear when you work with primitive values due to prototype chain.
Weight of AngularJs - For building big web applications you will find yourself adding a bunch of modules not included into the AngularJs module. You will need to include then apart. Easy but you app will grow in Kb. Review collected by and hosted on G2.com.