If you are looking for AngularJS, this article will help you out. In this article, you can learn Angular from beginner level to expert. I have found some of the best articles from C# Corner and arranged them according to the AngularJS content.
According to Angular's official documents, here is the list of topics that you must read and moreover, do a hands-on practice for cracking an Angular interview.
- Introduction
- Data Binding
- Controllers
- Services
- Scopes
- Dependency Injection
- Expressions
- Filters
- Forms
- Directives
- Components
- Component Router
- Animations
- Modules
Let us start learning with C# Corner’s best articles
Introduction to Angular
AngularJS is an open-source JavaScript framework developed by Google. It is a structural framework for dynamic web apps. It makes it easier to update and get information from your HTML document. It helps in writing a proper architecture along with maintainable and testable client-side code.
- This framework is developed based on MVC (Model-View-Controller) design pattern.
- It provides full-featured SPA (Single Page Application) framework.
- It supports Dependency Injection.
- It supports two-way data binding.
- It provides routing feature.
- Testing was designed right from the beginning so you can build robust tests.
- For DOM manipulation jqLite is built-in which is kind of like Mini-Me of jQuery.
- Separation of the client side of an application from the server side.
- The AngularJS framework uses Plain Old JavaScript Objects(POJO), it doesn’t need the getter or setter functions.
For more details, follow the complete article written by Jeetendra Gund.
Data Binding
Data binding is a very powerful feature of software development technologies. Data binding is the connection bridge between View and business logic (View Model) of the application. Data binding in AngularJS is automatic synchronization between a Model and a View. When the model changes, the view is automatically updated and vice versa. AngularJS supports one-way binding as well as two-way binding.

Most templating systems work with one-way data binding. They merge the model component and template together into a View. When the merger occurs, the model data is bound to the View. After that, if the model changes are not automatically reflected in the View, the changes done by the user on View are not reflected in the model.
AngularJS template's module works differently. First of all, the template is compiled into the browser. During the compilation, it produces the live View that works as two-way binding; in other words, any changes made to the View are immediately reflected in the model and vice-versa.
For more details, follow the complete article by Jignesh Trivedi.
Controllers
Controllers allow you to create an isolated scope to “control” the data before it is passed to the View. Using a Controller, you are able to define an isolated scope and then control what part of your application has access to this scope; therefore, the data is bound to it. The traditional method for implementing Controllers is to inject a new scope instance using the $scope variable and then, bind data to it. You will, then, be able to access this bound data within the View where your Controller has governance.
The following example illustrates this principle.

- $scope.$watch() - To watch the changes on scope properties
- $scope.$eval() - Evaluates an expression against the scope
- $scope.$emit() - Emit custom events
- $scope.$on() - Listen for and act on events
For more details, follow the complete article by Tejas Trivedi.
Services
Service in AngularJS is a function or an object that can be used to share data and the behavior across the application (controller, directives, filters, other services etc.) or we can say services in AngularJS are objects that are wired together using DI (dependency injection) and it can be used to share and organize code across the application.
We can consider services as a singleton object because their is only one instance of a specific service available during the lifetime of the Angular application. They are instantiated by using the "$injector". Generally, they provide an interface to create a logical grouping of methods together related to a specific function.
There are the following two characteristics of AngularJS services:
- Lazy instantiated
AngularJS application instantiates a service component when any application component depends on it. - Singletons
All components, those dependent on a service get a reference to the single instance generated by the service factory.
Structure of Idle AngularJS Application
Separation of concern is the main objective of AngularJS application. Our controller must be responsible for data binding with the view using $scope and contains some business logic. Controller does not contain any logic to fetch the data. AngularJS services manage the data fetching. In AngularJS application, each component has their own responsibilities so that each component can become more testable.

AngularJS internal services
AngularJS internally provides many services that can be used in our application. All the AngularJS internal service start with $ (dollar) sign. $http, $route, $location, $window, $q, etc are useful services provided by AngularJS.
AngularJS custom services
With AngularJS application, we can define our own service and we can use them whenever required. There are many ways to create Services in AngularJS.
For more details follow the complete article written by Jignesh Trivedi.
Scope$scope in AngularJS is an object which refers as an application model. It is object that bind view (DOM element) with the controller. In the controller, model data is accessed via $scope object. As we know, AngularJS supports MV* pattern, $scope object becomes the model of MV*.
The $scope is a special JavaScript object. Both View and controller have access to the scope object. It can be used to communication between view and controller. Scope object contains both data and functions. Every AngularJS application have a $rootScope that is the top most scope created on DOM element which contains the ng-app directive. It can watch expressions and propagate events.
Characteristics of scope object
- It provides the APIs to observe model (example $watch).
- It can be nested, so that it limits access to the properties. Nested scopes are either child scope or isolated scope.
- It provides the APIs to propagate any model changes from the outside of "Angular realm" (example $apply).
- It provides a context against expression to be evaluated.
For more details, follow the complete article by Jignesh Trivedi.
DI (Dependency Injection)Dependency Injection is one of the best features of AngularJS. It is a software design pattern in which objects are passed as dependencies. It helps us to remove hard-coded dependencies and makes dependencies configurable. Using Dependency Injection, we can make components maintainable, reusable and testable.
Dependency Injection is required for the following:
- Separating the process of creation and consumption of dependencies.
- It allows us to create an independent development of the dependencies.
- We can change the dependencies when required.
- It allows injecting mock object as dependencies for testing.
AngularJS provides the following components which can be injected into each other as dependencies.
For more details, follow the complete article written by Jignesh.
ExpressionsUsing Expressions, AngularJS binds the data to HTML at the location where expression is mentioned on the web page. It can be written inside double braces, like {{expression}}. It can also be written in a different way, i.e. ng-bind=”expression”. ng-bind maps the inner HTML to the value of an expression.
Let’s take an example of an HTML paragraph with equivalent expressions-
<p> {{ 5+5 }} </p>
OR
<p ng-bind=”5+5”></p>
As already mentioned, AngularJS resolves the expression and returns the result exactly where expression is written. They can contain literals, operators, and variables.
For more details follow the complete article written by Satyendra Mishra.
FiltersFilter is a module provided by AngularJS. If you don’t know what module is, then please read my previous article on Module and Controller in AngularJS. There are nine components of the filter which are provided by AngularJS. We can write custom as well.
- currency
- date
- filter
- json
- limitTo
- lowercase
- number
- uppercase
For more details follow the complete article written by Pramod Thakur.
Forms and validationsCreating a form and submitting a form is the most important part of any web application. Form allows programmers to get the feedback from the user. Forms are also used to get the user information. But the important point here is that if the information submitted by the user is in the proper format or not. So, we need to check (validate) each and every field submitted by a user.
The aim of this section is to set some validations on the user input value and display an error message on the wrong input.
Explanation of validations states
- $dirty - True if the user has already interacted with the form.
- $error - It states the exact error.
- $Invalid - It states that the entered value is invalid
There are many more validation states available in AngularJS.
- $untouched
- $touched
- $pristine
- $valid
- $submitted
For more details follow the complete article by Rohit Singh.
Directives
Directives are attributes decorated on HTML elements. All directives start with the word “ng”. AngularJS has a set of built in directives which offers functionality to the application. You can also define your own directives in AngularJS
Let me explain few directives here,
- ng-app – This directive initializes and AngularJS application.
- ng-bind – This directive binds the content of an HTML element to application data.
- ng-class - This directive specifies CSS classes on HTML elements.
- ng-checked – This directive specifies if an element is checked or not.
- ng-click – This directive specifies and expression to evaluate when and the element is being clicked.
- ng-controller – This directive defines the controller object for an application.
- ng-init – This directive initializes application data.
- ng-model – This directive binds the value of HTML controls to application data.
- ng-selected – This directive specifies the selected attribute of an element.
- ng-repeat – This directive defines a template for each data in a collection.
- ng-required – This directive specifies the required attribute of an element.
- ng-show – This directive defines the show and hides HTML elements.
- ng-submit – This directive specifies the expressions to run on onsubmit event
- ng-value – This directive specifies the value of an input element.


Hamid KhanPosted Jan 1, 2019, 11:59 PM
Nice Thanks.............................
Amit Kumar SinghPosted Jun 25, 2018, 1:13 AM
Good one.. Thanks for sharing
Debasis SahaPosted Jun 24, 2018, 12:04 AM
Nice one Nitin Sir...
Khaja MoizuddinPosted Jun 22, 2018, 12:48 AM
Nicely written nitin sir, it will be helpful for beginners who are new to angular who have no idea where to start from.
Mahesh ChandPosted Jun 20, 2018, 5:56 AM
Nicely done, Nitin.
Manav PandyaPosted Jun 20, 2018, 3:30 AM
Great collection, need for Angular2+ collection if possible Nitin Pandit sir
Madhu KollaPosted Jun 19, 2018, 2:38 PM
Nice summary on Angular, very well organised, keep it up.
Hemanth KumarPosted Jun 19, 2018, 11:13 AM
Great compilation brother. Easy to follow and learn angular quickly. Thank you so much