Subjects covered include:
- Getting started with AngularJS
- Built-in directives
- Use of in-built directives
- Custom Directives
- How data binding works
- Angular Project - Directory Structure
- Custom filters
- Custom filters with ES6
- Directives using ngModelController
- Controllers with ES6
- The Self Or This Variable In A Controller
- Distinguishing Service vs Factory
- Angular promises with $q service
- Dependency Injection
- Sharing Data
- Form Validation
- Routing using ngRoute
- ng-class directive
- AngularJS bindings options (`=`, `@`, `&` etc.)
- Built-in helper Functions
- digest loop walkthrough
- Angular $scopes
- Using AngularJS with TypeScript
- $http request
- Prepare for Production - Grunt
- Grunt tasks
- Lazy loading
- HTTP Interceptor
- Session storage
- Angular MVC
- SignalR with AngularJS
- Migration to Angular 2+
- AngularJS with data filter, pagination etc
- Profiling and Performance
- Performance Profiling
- Unit tests
- AngularJS gotchas and traps
AngularJS is the frontend part of the MEAN stack, consisting of MongoDB database, Express.js web application server framework, Angular.js itself, and Node.js server runtime environment.
AngularJS is built on the belief that declarative programming should be used to create user interfaces and connect software components, while imperative programming is better suited to defining an application's business logic. The framework adapts and extends traditional HTML to present dynamic content through two-way data-binding that allows for the automatic synchronization of models and views. As a result, AngularJS de-emphasizes explicit Document Object Model (DOM) manipulation with the goal of improving testability and performance.
AngularJS's design goals include:
- to decouple DOM manipulation from application logic. The difficulty of this is dramatically affected by the way the code is structured.
- to decouple the client side of an application from the server side. This allows development work to progress in parallel, and allows for reuse of both sides.
- to provide structure for the journey of building an application: from designing the UI, through writing the business logic, to testing.
AngularJS implements the MVC pattern to separate presentation, data, and logic components. Using dependency injection, Angular brings traditionally server-side services, such as view-dependent controllers, to client-side web applications. Consequently, much of the burden on the server can be reduced.