Categories: Javascript

AngularJS – Different Ways to Declare Controllers

The article represents various ways of declaring a controller along with code examples. Please feel free to comment/suggest if I have missed on any key aspects.Following are two different ways in which controllers can be declared:
  • Using “as aliasName” in ng-controller. Example: ng-controller=”HelloCtrl as ctrl”
  • Just the controller name. In this strategy, $scope object is bound to data and methods. Example: ng-controller=”HelloCtrl”

 

Using “as aliasName” in ng-controller (Recommended Way)

Using “as aliasName” specifier when defining the controller in ng-controller directive. The methods and properties can be bound on to the controller using “this” keyword. There are benefits of binding properties directly to the controller and thus, it is the recommended way (best practice) to declare the controller using “as alias” method. Following are some of the benefits:

  • In case of multiple controllers, one knows which controllers are accessed in reading the template.
  • Enhanced readability, in general
  • Helps create controller using prototypal inheritance.

Following is how view code looks like. Note the “as ctrl” and then, “ctrl.name”

<div ng-controller="HelloCtrl as ctrl">
    <input type="text" name="name" ng-model="ctrl.name"/>
</div>

Following is how the controller looks like:

angular.module( "helloApp", [] )
    .controller( "HelloCtrl", function() {
        this.name = '';
    }]);

 

Injecting the Scope Object into the Controller (Rookies Way)

This is most common and popular way of working with the controller. For rookies to quickly get on board, this may be the recommended way.

In this strategy, the properties and methods get bound as scope properties and methods and can be later accessed on scope object within the controller object. This strategy requires $scope object to be injected.

Following is how view code looks like. Note the absence of “as” in the ng-controller directive and “ctrl.” alias in ng-model directive.

<div ng-controller="HelloCtrl">
    <input type="text" name="name" ng-model="name"/>
</div>

Following is how the controller looks like. Notice that $scope is injected and the model is bound to $scope object.

angular.module( "helloApp", [] )
    .controller( "HelloCtrl", [ '$scope', function( $scope ) {
        $scope.name = '';
    }]);

[adsenseyu1]

Ajitesh Kumar

I have been recently working in the area of Data analytics including Data Science and Machine Learning / Deep Learning. I am also passionate about different technologies including programming languages such as Java/JEE, Javascript, Python, R, Julia, etc, and technologies such as Blockchain, mobile computing, cloud-native technologies, application security, cloud computing platforms, big data, etc. I would love to connect with you on Linkedin. Check out my latest book titled as First Principles Thinking: Building winning products using first principles thinking.

View Comments

  • another way is registering a controller using a $controllerProvider. Then use the $controller service to create it. You can pass the $scope as parameters to $controller service.

Share
Published by
Ajitesh Kumar
Tags: angularjs

Recent Posts

How Indexing Works in LLM-Based RAG Applications

When building a Retrieval-Augmented Generation (RAG) application powered by Large Language Models (LLMs), which combine…

3 days ago

Retrieval Augmented Generation (RAG) & LLM: Examples

Last updated: 25th Jan, 2025 Have you ever wondered how to seamlessly integrate the vast…

3 days ago

What are AI Agents? How do they work?

Artificial Intelligence (AI) agents have started becoming an integral part of our lives. Imagine asking…

3 weeks ago

Agentic AI Design Patterns Examples

In the ever-evolving landscape of agentic AI workflows and applications, understanding and leveraging design patterns…

3 weeks ago

List of Agentic AI Resources, Papers, Courses

In this blog, I aim to provide a comprehensive list of valuable resources for learning…

3 weeks ago

Understanding FAR, FRR, and EER in Auth Systems

Have you ever wondered how systems determine whether to grant or deny access, and how…

4 weeks ago