Creating Controllers in AngularJS

Controllers are an essential component in an AngularJS application. They play a crucial role in connecting the view with the model and handling user interactions. In this article, we will explore how to create controllers in AngularJS and how they facilitate building a robust and interactive web application.

What is a Controller?

A controller is a JavaScript function that defines the behavior of a particular view in an AngularJS application. It acts as an intermediary between the model (data) and the view (user interface). Controllers are responsible for handling user actions, manipulating data, and updating the view accordingly.

Creating a Controller

To create a controller in AngularJS, you need to follow these steps:

1. Define the Controller Function

In JavaScript, define a function that will serve as your controller. The function will take two parameters, $scope and any other dependencies you may need.

function MyController($scope, DataService) {
    // Controller Logic Here

2. Register the Controller with AngularJS

To make the controller available to your application, register it using the controller() function provided by the AngularJS framework.

angular.module('myApp', [])
    .controller('MyController', MyController);

In this example, the controller() function is called with two arguments: the name you want to give your controller ('MyController'), and the reference to the controller function (MyController).

3. Attach the Controller to a View Element

Finally, bind the controller to a specific HTML element within your view. You can do this using the ng-controller directive provided by AngularJS.

<div ng-controller="MyController">
    <!-- HTML Content Here -->

The ng-controller directive attaches the specified controller's scope to the enclosing HTML element. Now, any data or functions defined within the controller can be accessed and used within that element and its child elements.

Interacting with the Model and View

Once the controller is created and attached to a view, you can start interacting with the model and updating the view based on user actions or other events. AngularJS provides the $scope object, which acts as the glue between the controller and the view.

Within the controller function, you can define properties and functions on the $scope object. These properties will be available for data binding in the view, and any changes made to them will automatically be reflected in the view.

For example, within our MyController, we can define a greeting message:

function MyController($scope) {
    $scope.greeting = 'Hello, AngularJS!';

And in our view, we can display this greeting using data binding:

<div ng-controller="MyController">
    <h1>{{ greeting }}</h1>

Every time the controller updates the value of $scope.greeting, the view will automatically update to reflect the new value.


Understanding how to create controllers is fundamental to developing AngularJS applications. Controllers allow us to separate concerns, handle user interactions, and update the view based on changes to the model. By following these steps, you can easily create controllers in AngularJS and harness their power to build highly interactive web applications.

noob to master © copyleft