Questions And Answers

More Tutorials

Angular constructs

Angular constructs

<!DOCTYPE html>
<html ng-app="myDemoApp">
 <style>.started { background: gold; }</style>
 <script src=""></script>
 function MyDataService() {
 return {
 getWorlds: function getWorlds() {
 return ["this world", "another world"];
 function DemoController(worldsService) {
 var vm = this;
 vm.messages = worldsService.getWorlds().map(function(w) {
 return "Hello, " + w + "!";
 function startup($rootScope, $window) {
 $window.alert("Hello, user! Loading worlds...");
 $rootScope.hasStarted = true;
 angular.module("myDemoApp", [/* module dependencies go here */])
 .service("worldsService", [MyDataService])
 .controller("demoController", ["worldsService", DemoController])
 .config(function() {
 console.log('configuring application');
 .run(["$rootScope", "$window", startup]);
 <body ng-class="{ 'started': hasStarted }" ng-cloak>
 <div ng-controller="demoController as vm">
 <li ng-repeat="msg in vm.messages">{{ msg }}</li>

1. ng-app="myDemoApp", the ngApp directive that bootstraps the application and tells angular that a DOM element is controlled by a specific angular.module named "myDemoApp";

2. < script src="angular.min.js" > is the first step in bootstrapping the AngularJS library;

Three functions (MyDataService, DemoController, and startup) are declared, which are used (and explained) below.

3. angular.module(...) used with an array as the second argument creates a new module. This array is used to supply a list of module dependencies. In this example we chain calls on the result of the module(...) function;

4. .service(...) creates an Angular Service and returns the module for chaining;

5. .controller(...) creates an Angular Controller and returns the module for chaining;

6. .config(...) Use this method to register work which needs to be performed on module loading.

7. .run(...) makes sure code is run at startup time and takes an array of items as a parameter. Use this method to register work which should be performed when the injector is done loading all modules.

The first item is letting Angular know that the startup function requires the built-in $rootScope service to be injected as an argument;
The second item is letting Angular know that the startup function requires the built-in $window service to be injected as an argument;
The last item in the array, startup, is the actual function to run on startup;

8. ng-class is the ngClass directive to set a dynamic class, and in this example utilizes hasStarted on the $rootScope dynamically.

9. ng-cloak is a directive to prevent the unrendered Angular html template (e.g. "{{ msg }}") to be briefly shown before Angular has fully loaded the application.

10. ng-controller is the directive that asks Angular to instantiate a new controller of specific name to orchestrate that part of the DOM;

11. ng-repeat is the directive to make Angular iterate over a collection and clone a DOM template for each item;

12. {{ msg }} showcases interpolation: on-the-spot rendering of a part of the scope or controller;


In this page (written and validated by ) you learned about AngularJS constructs . What's Next? If you are interested in completing AngularJS tutorial, your next topic will be learning about: AngularJS importance of scope.

Incorrect info or code snippet? We take very seriously the accuracy of the information provided on our website. We also make sure to test all snippets and examples provided for each section. If you find any incorrect information, please send us an email about the issue:

Share On:

Mockstacks was launched to help beginners learn programming languages; the site is optimized with no Ads as, Ads might slow down the performance. We also don't track any personal information; we also don't collect any kind of data unless the user provided us a corrected information. Almost all examples have been tested. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. By using, you agree to have read and accepted our terms of use, cookies and privacy policy.