{"id":21067,"date":"2018-03-09T16:15:33","date_gmt":"2018-03-09T14:15:33","guid":{"rendered":"http:\/\/www.webcodegeeks.com\/?p=21067"},"modified":"2018-04-18T16:10:04","modified_gmt":"2018-04-18T13:10:04","slug":"angularjs-dependency-injection-example","status":"publish","type":"post","link":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/","title":{"rendered":"AngularJS Dependency Injection Example"},"content":{"rendered":"<p><strong>Dependency Injection<\/strong> is a design pattern that divides the application into different components which can be injected into each other as dependencies. In this tutorial, we will understand how the dependency injection principle works in the angular library.<\/p>\n<p>[ulp id=&#8217;LXJcMJZXSsqGXYW8&#8242;]<\/p>\n<div class=\"toc\">\n<h3>Table Of Contents<\/h3>\n<dl>\n<dt><a href=\"#introduction\">1. Introduction<\/a><\/dt>\n<dd>\n<dl>\n<dt><a href=\"#whatIsAngular\">1.1 Angular JavaScript<\/a><\/dt>\n<dt><a href=\"#dependencyInjection\">1.2 Dependency Injection in Angular<\/a><\/dt>\n<dt><a href=\"#depdencyInjectionUse\">1.3 Why Dependency Injection?<\/a><\/dt>\n<dt><a href=\"#commonServicesInAngular\">1.4 Familiar Services in Angular<\/a><\/dt>\n<\/dl>\n<\/dd>\n<dt><a href=\"#angularDITutorial\">2. AngularJS Dependency Injection Example<\/a><\/dt>\n<dd>\n<dl>\n<dt><a href=\"#toolsUsed\">2.1 Tools Used<\/a><\/dt>\n<dt><a href=\"#projectStructure\">2.2 Project Structure<\/a><\/dt>\n<dt><a href=\"#projectCreation\">2.3 Project Creation<\/a><\/dt>\n<\/dl>\n<\/dd>\n<dt><a href=\"#applicationBuilding\">3. Application Building<\/a><\/dt>\n<dd>\n<dl>\n<dt><a href=\"#loadTheFramework\">3.1 Load the Angular framework<\/a><\/dt>\n<dt><a href=\"#defineTheAngularApplication\">3.2 Define the Angular application<\/a><\/dt>\n<dt><a href=\"#controller\">3.3 Create the Angular controller<\/a><\/dt>\n<dt><a href=\"#example\">3.4 Complete Application<\/a><\/dt>\n<\/dl>\n<\/dd>\n<dt><a href=\"#runTheApplication\">4. Run the Application<\/a><\/dt>\n<dt><a href=\"#projectDemo\">5. Project Demo<\/a><\/dt>\n<dt><a href=\"#projectConclusion\">6. Conclusion<\/a><\/dt>\n<dt><a href=\"#projectDownload\">7. Download the Eclipse Project<\/a><\/dt>\n<\/dl>\n<\/div>\n<h2><a name=\"introduction\"><\/a>1. Introduction<\/h2>\n<p>Before we begin with the tutorial, let\u2019s take a look and at the Angular JavaScript, Dependency Injection in angular and its characteristics.<\/p>\n<h3><a name=\"whatIsAngular\"><\/a>1.1 Angular JavaScript<\/h3>\n<p><em>Angular<\/em> is a JavaScript MVC or Model-View-Controller framework developed by Google that lets developers build well structured, easily testable, and maintainable front-end applications. But before we start creating a real application using the angular library, let us see what the important parts of an angular application are.<\/p>\n<h4>1.1.1 Templates<\/h4>\n<p>In Angular, a <span style=\"text-decoration: underline;\">template<\/span> is an <code>HTML<\/code> with added markups. The angular library compiles the templates and renders the resultant <code>HTML<\/code> page.<\/p>\n<h4>1.1.2 Directives<\/h4>\n<p><span style=\"text-decoration: underline;\">Directives<\/span> are the markers (i.e. attributes) on a DOM element that tell angular to attach a specific behavior to that DOM element or even transform the DOM element and its children. Most of the directives in the angular library start with the <code>ng<\/code>. The directives consist of the following parts:<\/p>\n<ul>\n<li><code>ng-app<\/code>: The <code>ng-app<\/code> directive is a <em>starting point<\/em>. If the angular framework finds the <code>ng-app<\/code> directive anywhere in the <code>HTML<\/code> document, it bootstraps (i.e. initializes) itself and compiles the <code>HTML<\/code> template<\/li>\n<li><code>ng-model<\/code>: The <code>ng-model<\/code> directive binds an <code>HTML<\/code> element to a property on the <code>$scope<\/code> object. It also binds the values of angular application data to the <code>HTML<\/code> input controls<\/li>\n<li><code>ng-bind<\/code>: The <code>ng-bind<\/code> directive binds the angular application data to the <code>HTML<\/code> tags<\/li>\n<\/ul>\n<h4>1.1.3 Expressions<\/h4>\n<p>An <span style=\"text-decoration: underline;\">expression<\/span> is like a JavaScript code usually wrapped inside the double curly braces such as <code>{{ expression }}<\/code>. Angular library evaluates the expression and produces a result.<\/p>\n<h3><a name=\"dependencyInjection\"><\/a>1.2 Dependency Injection in Angular<\/h3>\n<p><em>Dependency Injection<\/em> is an important design pattern that implements the &#8216;inversion of control&#8217; mechanism to resolve the dependencies of the components and thus making the code more maintainable, testable, and reusable. It provides the following components which can be injected into each other as dependencies.<\/p>\n<h4>1.2.1 Value based DI<\/h4>\n<p>In angular, a <span style=\"text-decoration: underline;\">value<\/span> is a simple javascript object that passes the value to the angular controller, factory or the service method during the run and the configuration phase. The value objects are defined using the <code>value()<\/code> function of the module and the angular functions can use these values by their names. This function has the following prototype form:<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Value based DI<\/em><\/span><\/p>\n<pre class=\"brush:js; wrap-lines:false;\">\/\/ Define a module\r\nvar app = angular.module(\"mainApp\", []); \r\n \r\n\/\/ Create the value objects as the \"defaultInput\" &amp; \"objectValue\" and pass it a data\r\napp.value(\"defaultInput\", 5);\r\napp.value(\"objectValue\", {  val1 : \"hello\", val2 : \"world\" } ); \r\n<\/pre>\n<h4>1.2.2 Factory based DI<\/h4>\n<p>In angular, a <span style=\"text-decoration: underline;\">factory<\/span> is a function that returns a value. When an angular service, controller etc. needs a value injected from a factory, the factory <em>creates<\/em> the value on demand. Once created, this value is reused for all the services, controllers etc. that need to be injected. The factory <em>differs<\/em> from the value as developers can inject values into a factory while creating an object but they cannot do that with a value. This function has the following prototype form:<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Factory based DI<\/em><\/span><\/p>\n<pre class=\"brush:js; wrap-lines:false;\">\/\/ Define a module\r\nvar app = angular.module(\"mainApp\", []); \r\n\r\n\/\/ Create a factory method which display the greetings message\r\napp.factory(\"myFactory\", function() {  \r\n    return \"hello world\";  \r\n}); \r\n\r\n\/\/ Injecting the factory in a controller to use the output of the factory\r\napp.controller(\"myCtrl\", function($scope, myFactory) {  \r\nconsole.log(myFactory);  \r\n});  \r\n<\/pre>\n<h4>1.2.3 Service based DI<\/h4>\n<p>In angular, a <span style=\"text-decoration: underline;\">service<\/span> is a function or a javascript object that do the specific tasks. The function contains a business logic for the service to carry out its work. For e.g. <code>$http<\/code> is a service in the angular library which when injected into the controller provides the implementation to the <code>get()<\/code>, <code>query()<\/code>, <code>save()<\/code>, <code>remove<\/code>, and the <code>delete()<\/code> methods. This function has the following prototype form:<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Service based DI<\/em><\/span><\/p>\n<pre class=\"brush:js; wrap-lines:false;\">\/\/ Define a module\r\nvar app = angular.module(\"mainApp\", []); \r\n\r\n\/\/ Create a service which defines a method to return the square of a number.  \r\napp.service('myService', function(multiple) {  \r\n   this.square = function(a) {  \r\n      return multiple.square(a, a);   \r\n   }  \r\n});  \r\n\r\n\/\/ Injecting the service (i.e. \"myService\") into the controller  \r\napp.controller('myCtrl', function($scope, myService) {\r\n   $scope.square = function() {\r\n\t\t$scope.result = myService.square($scope.number);\r\n\t}\r\n});\r\n<\/pre>\n<h4>1.2.4 Provider based DI<\/h4>\n<p>In angular, a <span style=\"text-decoration: underline;\">provider<\/span> is a flexible form of the factory function which is internally used by the angular framework to create the service, factory etc. during the configuration phase. Developers register a <em>provider<\/em> with the angular module by using the <code>provider()<\/code> function. The provider object has a <code>get()<\/code> function which creates whatever the provider creates (i.e. service, value etc.). This function has the following prototype form:<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Provider based DI<\/em><\/span><\/p>\n<pre class=\"brush:js; wrap-lines:false;\">\/\/ Define a module\r\nvar app = angular.module(\"mainApp\", []); \r\n \r\n\/\/ Create a service using the provider which defines a method to return the square of a number.  \r\napp.config(function($provide) {  \r\n   $provide.provider('myService', function() {  \r\n      this.$get = function() {  \r\n         var factory = {};    \r\n         factory.multiply = function(a, a) {  \r\n            return a * a;   \r\n         }  \r\n         return factory;  \r\n      };  \r\n   });  \r\n});\r\n<\/pre>\n<h4>1.2.5 Constant based DI<\/h4>\n<p>In angular, a <span style=\"text-decoration: underline;\">constant<\/span> passes the values at the configuration phase. These values are defined using the <code>module.constants()<\/code> function and cannot be injected into the <code>module.config()<\/code> function. This function has the following prototype form:<\/p>\n<pre class=\"brush:js; wrap-lines:false;\">app.constant(\"configParam\", \"constant value\");\r\n<\/pre>\n<h3><a name=\"depdencyInjectionUse\"><\/a>1.3 Why Dependency Injection?<\/h3>\n<p>Dependency injection allows:<\/p>\n<ul>\n<li>Separate creation and use of the dependencies<\/li>\n<li>Easy change of the dependencies on a need basis<\/li>\n<li>Allow easy reuse of the customs services across multiple angular modules<\/li>\n<li>Allow dummy objects injection for testing<\/li>\n<li>Offer loose coupling by removing the hard-coded dependencies<\/li>\n<\/ul>\n<h3><a name=\"commonServicesInAngular\"><\/a>1.4 Familiar services in Angular<\/h3>\n<p>In a real world, developer\u2019s first contact with the <em>Dependency Injection<\/em> principle is with the <code>$scope<\/code> value in the controller. The other common services are listed below:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: center;\"><strong>Service<\/strong><\/th>\n<th style=\"text-align: center;\"><strong>Description<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>$http<\/code><\/td>\n<td>This parameter allows access to the <code>HTTP<\/code> requests<\/td>\n<\/tr>\n<tr>\n<td><code>$resource<\/code><\/td>\n<td>This parameter provides a higher-level abstraction for accessing the REST-style services<\/td>\n<\/tr>\n<tr>\n<td><code>$document<\/code><\/td>\n<td>This parameter is a jQuery lite reference to the <code>window.document<\/code> function<\/td>\n<\/tr>\n<tr>\n<td><code>$window<\/code><\/td>\n<td>This parameter is a jQuery lite reference to <code>window<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>$timeout<\/code><\/td>\n<td>This parameter is a jQuery lite reference to the <code>window.setTimeout<\/code> function. Developers can use the <code>$timeout.flush()<\/code> function to synchronously execute all the scheduled timeouts<\/td>\n<\/tr>\n<tr>\n<td><code>$parse<\/code><\/td>\n<td>This parameter parses the angular expressions<\/td>\n<\/tr>\n<tr>\n<td><code>$cacheFactory<\/code><\/td>\n<td>Developers can use this parameter if the angular services need a scoped cache of elements<\/td>\n<\/tr>\n<tr>\n<td><code>$filter<\/code><\/td>\n<td>This parameter provides an access to a filter function<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>These new APIs make developer&#8217;s life easier, really! But it would be difficult for a beginner to understand this without an example. Therefore, let us create a simple example to show the dependency injection in the angular library.<\/p>\n<h2><a name=\"angularDITutorial\"><\/a>2. AngularJS Dependency Injection Example<\/h2>\n<p>Here is a step-by-step guide for implementing the dependency injection in the angular web applications.<\/p>\n<h3><a name=\"toolsUsed\"><\/a>2.1 Tools Used<\/h3>\n<p>We are using Eclipse Kepler SR2, JDK 8 and Maven. Having said that, we have tested the code against JDK 1.7 and it works well.<\/p>\n<h3><a name=\"projectStructure\"><\/a>2.2 Project Structure<\/h3>\n<p>Firstly, let\u2019s review the final project structure if you are confused about where you should create the corresponding files or folder later!<\/p>\n<figure id=\"attachment_21068\" aria-describedby=\"caption-attachment-21068\" style=\"width: 259px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_structure_guide_1.jpg\"><img decoding=\"async\" class=\"size-full wp-image-21068\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_structure_guide_1.jpg\" alt=\"Fig. 1: Application Project Structure\" width=\"259\" height=\"344\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_structure_guide_1.jpg 259w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_structure_guide_1-226x300.jpg 226w\" sizes=\"(max-width: 259px) 100vw, 259px\" \/><\/a><figcaption id=\"caption-attachment-21068\" class=\"wp-caption-text\">Fig. 1: Application Project Structure<\/figcaption><\/figure>\n<h3><a name=\"projectCreation\"><\/a>2.3 Project Creation<\/h3>\n<p>This section will show how to create a Java-based Maven project with Eclipse. In Eclipse Ide, go to <code>File -&gt; New -&gt; Maven Project<\/code>.<\/p>\n<figure id=\"attachment_21069\" aria-describedby=\"caption-attachment-21069\" style=\"width: 657px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_ex_project_guide_1.jpg\"><img decoding=\"async\" class=\"size-full wp-image-21069\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_ex_project_guide_1.jpg\" alt=\"Fig. 2: Create Maven Project\" width=\"657\" height=\"690\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_ex_project_guide_1.jpg 657w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_ex_project_guide_1-286x300.jpg 286w\" sizes=\"(max-width: 657px) 100vw, 657px\" \/><\/a><figcaption id=\"caption-attachment-21069\" class=\"wp-caption-text\">Fig. 2: Create Maven Project<\/figcaption><\/figure>\n<p>In the New Maven Project window, it will ask you to select project location. By default, &#8216;Use default workspace location&#8217; will be selected. Just click on next button to proceed.<\/p>\n<figure id=\"attachment_21070\" aria-describedby=\"caption-attachment-21070\" style=\"width: 598px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_ex_project_guide_2.jpg\"><img decoding=\"async\" class=\"size-full wp-image-21070\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_ex_project_guide_2.jpg\" alt=\"Fig. 3: Project Details\" width=\"598\" height=\"543\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_ex_project_guide_2.jpg 598w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_ex_project_guide_2-300x272.jpg 300w\" sizes=\"(max-width: 598px) 100vw, 598px\" \/><\/a><figcaption id=\"caption-attachment-21070\" class=\"wp-caption-text\">Fig. 3: Project Details<\/figcaption><\/figure>\n<p>Select the &#8216;Maven Web App&#8217; Archetype from the list of options and click next.<\/p>\n<figure id=\"attachment_21071\" aria-describedby=\"caption-attachment-21071\" style=\"width: 597px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_ex_project_guide_3.jpg\"><img decoding=\"async\" class=\"size-full wp-image-21071\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_ex_project_guide_3.jpg\" alt=\"Fig. 4: Archetype Selection\" width=\"597\" height=\"541\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_ex_project_guide_3.jpg 597w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_ex_project_guide_3-300x272.jpg 300w\" sizes=\"(max-width: 597px) 100vw, 597px\" \/><\/a><figcaption id=\"caption-attachment-21071\" class=\"wp-caption-text\">Fig. 4: Archetype Selection<\/figcaption><\/figure>\n<p>It will ask you to &#8216;Enter the group and the artifact id for the project&#8217;. We will enter the details as shown in the below image. The version number will be by default: <code>0.0.1-SNAPSHOT<\/code>.<\/p>\n<figure id=\"attachment_21072\" aria-describedby=\"caption-attachment-21072\" style=\"width: 597px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_ex_project_guide_4.jpg\"><img decoding=\"async\" class=\"size-full wp-image-21072\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_ex_project_guide_4.jpg\" alt=\"Fig. 5: Archetype Parameters\" width=\"597\" height=\"536\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_ex_project_guide_4.jpg 597w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_ex_project_guide_4-300x269.jpg 300w\" sizes=\"(max-width: 597px) 100vw, 597px\" \/><\/a><figcaption id=\"caption-attachment-21072\" class=\"wp-caption-text\">Fig. 5: Archetype Parameters<\/figcaption><\/figure>\n<p>Click on Finish and the creation of a maven project is completed. If you see, it has downloaded the maven dependencies and a <code>pom.xml<\/code> file will be created. It will have the following code:<\/p>\n<p><span style=\"text-decoration: underline;\"><em>pom.xml<\/em><\/span><\/p>\n<pre class=\"brush:xml; wrap-lines:false;\">&lt;project xmlns=\"http:\/\/maven.apache.org\/POM\/4.0.0\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xsi:schemaLocation=\"http:\/\/maven.apache.org\/POM\/4.0.0 http:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd\"&gt;\r\n\t&lt;modelVersion&gt;4.0.0&lt;\/modelVersion&gt;\r\n\t&lt;groupId&gt;AngularDependencyInjectionEx&lt;\/groupId&gt;\r\n\t&lt;artifactId&gt;AngularDependencyInjectionEx&lt;\/artifactId&gt;\r\n\t&lt;version&gt;0.0.1-SNAPSHOT&lt;\/version&gt;\r\n\t&lt;packaging&gt;war&lt;\/packaging&gt;\r\n&lt;\/project&gt;\r\n<\/pre>\n<h2><a name=\"applicationBuilding\"><\/a>3. Application Building<\/h2>\n<p>Let\u2019s start building an application to understand the basic building blocks of the dependency injection principle in the angular library.<\/p>\n<h3><a name=\"loadTheFramework\"><\/a>3.1 Load the Angular framework<\/h3>\n<p>Since it is a pure JavaScript framework, we should add its reference using the <code>&lt;script&gt;<\/code> tag.<\/p>\n<pre class=\"brush:js; wrap-lines:false;\">&lt;script type=\"text\/javascript\" src=\"resource\/js\/angular_v1.6.0.js\"&gt;&lt;\/script&gt;\r\n<\/pre>\n<h3><a name=\"defineTheAngularApplication\"><\/a>3.2 Define the Angular application<\/h3>\n<p>Next, we will define the angular application using the <code>&lt;ng-app&gt;<\/code> and <code>&lt;ng-controller&gt;<\/code> directives.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>index.jsp<\/em><\/span><\/p>\n<pre class=\"brush:html; wrap-lines:false;\">&lt;div ng-app=\"myApp\" ng-controller=\"CalCtrl\"&gt;\r\n ...\r\n&lt;\/div&gt;\r\n<\/pre>\n<h3><a name=\"controller\"><\/a>3.3 Create the Angular controller<\/h3>\n<p>The <code>calculator.js<\/code> javascript file will process the data entered by the user. In this file, we are <em>injecting<\/em> the angular service within an angular controller and using the angular factory method to\u00a0find the square of a number.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>calculator.js<\/em><\/span><\/p>\n<pre class=\"brush:js; wrap-lines:false;\">var app = angular.module(\"myApp\", []);\r\n\r\n\/\/============ (a) Injecting the service within an Angular controller =============\/\/\r\napp.controller('CalCtrl',function($scope, CalcService) {\r\n\t$scope.square = function() {\r\n\t\t$scope.result = CalcService.square($scope.number);\r\n\t}\r\n});\r\n\r\n\/\/============ (b) Injecting the service within a Angular service =============\/\/\r\napp.service('CalcService', function(multiple) {\r\n\tthis.square = function(a) {\r\n\t\treturn multiple.square(a, a);\r\n\t}\r\n});\r\n\r\n\/\/============ (c) Creating the Angular factory =============\/\/\r\napp.factory('multiple', function() {\r\n\tvar factory = {};\r\n\tfactory.square = function(a, b) {\r\n\t\treturn a * b;\r\n\t}\r\n\treturn factory;\r\n});\r\n<\/pre>\n<h3><a name=\"example\"><\/a>3.4 Complete Application<\/h3>\n<p>In this example, we have defined the <code>&lt;ng-model&gt;<\/code> directive to the <code>HTML<\/code> input control and we are using the same <code>&lt;ng-model&gt;<\/code> value for displaying the square of a number. Complete the above steps to show the front view and understand the use of dependency injection in an angular web application.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>index.jsp<\/em><\/span><\/p>\n<pre class=\"brush: html; wrap-lines:false;\">&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n   &lt;head&gt;\r\n      &lt;meta http-equiv=\"Content-Type\" content=\"text\/html; charset=UTF-8\"&gt;\r\n      &lt;title&gt;AngularJS DI&lt;\/title&gt;\r\n      \r\n      &lt;!-- AngularJs Files --&gt;\r\n      &lt;script type=\"text\/javascript\" src=\"resource\/js\/angular_v1.6.0.js\"&gt;&lt;\/script&gt;\r\n      &lt;script type=\"text\/javascript\" src=\"resource\/js\/calculator.js\"&gt;&lt;\/script&gt;\t\r\n      \r\n      &lt;!-- Bootstrap File --&gt;\r\n      &lt;link rel=\"stylesheet\" href=\"https:\/\/maxcdn.bootstrapcdn.com\/bootstrap\/4.0.0-alpha.6\/css\/bootstrap.min.css\"&gt;          \r\n   &lt;\/head&gt;\r\n   &lt;body&gt;\r\n      &lt;div id=\"angularInjection\" class=\"container\"&gt;\r\n         &lt;h1 align=\"center\" class=\"text-primary\"&gt;AngularJS - Dependency Injection Example&lt;\/h1&gt;\r\n         &lt;hr \/&gt;\r\n\r\n         &lt;!------ ANGULAR JAVASCRIPT 'DEPENDENCY INJECTION' EXAMPLE ------&gt;\r\n         &lt;div ng-app=\"myApp\" ng-controller=\"CalCtrl\"&gt;\r\n         \t&lt;div class=\"form-group\"&gt;\r\n         \t\t&lt;label for=\"number\" class=\"text-secondary\"&gt;Enter a number&lt;\/label&gt;       \r\n            \t&lt;input id=\"number\" name=\"number\" class=\"form-control\" type=\"number\" ng-model=\"number\" placeholder=\"Enter a number\" \/&gt;\r\n            &lt;\/div&gt;\r\n\r\n            &lt;!------ SUBMIT BUTTON ------&gt;\r\n            &lt;div id=\"getSqrBtn\"&gt;\r\n               &lt;button id=\"sqrBtn\" type=\"button\" class=\"btn btn-primary\" ng-click=\"square()\"&gt;X&lt;sup&gt;2&lt;\/sup&gt;&lt;\/button&gt;\r\n            &lt;\/div&gt;\r\n\r\n            &lt;div id=\"output\"&gt;\r\n            \t&lt;p id=\"pText\" class=\"text-info\"&gt;Result: &lt;strong&gt;{{ result }}&lt;\/strong&gt;&lt;\/p&gt;\r\n            &lt;\/div&gt;            \r\n         &lt;\/div&gt; \r\n      &lt;\/div&gt;                                                                                                \r\n   &lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/pre>\n<h2><a name=\"runTheApplication\"><\/a>4. Run the Application<\/h2>\n<p>As we are ready for all the changes, let us compile the project and deploy the application on the tomcat server. To deploy the application on Tomat7, right-click on the project and navigate to <code>Run as -&gt; Run on Server<\/code>.<\/p>\n<figure id=\"attachment_21073\" aria-describedby=\"caption-attachment-21073\" style=\"width: 820px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_deploy_guide_1.jpg\"><img decoding=\"async\" class=\"wp-image-21073\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_deploy_guide_1.jpg\" alt=\"Fig. 6: How to Deploy Application on Tomcat\" width=\"820\" height=\"410\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_deploy_guide_1.jpg 849w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_deploy_guide_1-300x150.jpg 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_deploy_guide_1-768x384.jpg 768w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/a><figcaption id=\"caption-attachment-21073\" class=\"wp-caption-text\">Fig. 6: How to Deploy Application on Tomcat<\/figcaption><\/figure>\n<p>Tomcat will deploy the application in its web-apps folder and shall start its execution to deploy the project so that we can go ahead and test it in the browser.<\/p>\n<h2><a name=\"projectDemo\"><\/a>5. Project Demo<\/h2>\n<p>Open your favorite browser and hit the following URL. The output page will be displayed.<\/p>\n<pre class=\"brush:plain; wrap-lines:false;\">http:\/\/localhost:8080\/AngularDependencyInjectionEx\/\r\n<\/pre>\n<p>Server name (localhost) and port (8080) may vary as per your Tomcat configuration.<\/p>\n<figure id=\"attachment_21074\" aria-describedby=\"caption-attachment-21074\" style=\"width: 820px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_demo_guide_1.jpg\"><img decoding=\"async\" class=\"wp-image-21074\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_demo_guide_1.jpg\" alt=\"Fig. 7: Output page\" width=\"820\" height=\"201\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_demo_guide_1.jpg 849w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_demo_guide_1-300x73.jpg 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_demo_guide_1-768x188.jpg 768w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/a><figcaption id=\"caption-attachment-21074\" class=\"wp-caption-text\">Fig. 7: Output page<\/figcaption><\/figure>\n<p>As the user puts a value in the input text-box and clicks the button, the square of a number will be displayed as shown below.<\/p>\n<figure id=\"attachment_21075\" aria-describedby=\"caption-attachment-21075\" style=\"width: 820px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_demo_guide_3.jpg\"><img decoding=\"async\" class=\"wp-image-21075\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_demo_guide_3.jpg\" alt=\"Fig. 8: Dependency Injection in an Angular application\" width=\"820\" height=\"196\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_demo_guide_3.jpg 849w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_demo_guide_3-300x72.jpg 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/angular_di_project_demo_guide_3-768x184.jpg 768w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/a><figcaption id=\"caption-attachment-21075\" class=\"wp-caption-text\">Fig. 8: Dependency Injection in an Angular application<\/figcaption><\/figure>\n<p>That\u2019s all for this post. Happy Learning!!<\/p>\n<h2><a name=\"projectConclusion\"><\/a>6. Conclusion<\/h2>\n<p>In this section, developers learned about the concept and several benefits of using the dependency injection in the angular library. Some of these benefits are:<\/p>\n<ul>\n<li>Reduced dependencies<\/li>\n<li>More Reusable and Testable code<\/li>\n<li>More Maintainable and Readable code<\/li>\n<li>Dummy services for testing<\/li>\n<\/ul>\n<p>Developers can download the sample application as an Eclipse project in the <a href=\"#projectDownload\">Downloads<\/a> section.<\/p>\n<h2><a name=\"projectDownload\"><\/a>7. Download the Eclipse Project<\/h2>\n<p>This was a tutorial of <em>dependency injection<\/em> in the angular library.<\/p>\n<div class=\"download\"><strong>Download<\/strong><br \/>\nYou can download the full source code of this example here: <a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/03\/AngularDependencyInjectionEx.zip\" target=\"_blank\" rel=\"noopener\"><strong>AngularDependencyInjectionEx<\/strong><\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Dependency Injection is a design pattern that divides the application into different components which can be injected into each other as dependencies. In this tutorial, we will understand how the dependency injection principle works in the angular library. [ulp id=&#8217;LXJcMJZXSsqGXYW8&#8242;] Table Of Contents 1. Introduction 1.1 Angular JavaScript 1.2 Dependency Injection in Angular 1.3 Why &hellip;<\/p>\n","protected":false},"author":2162,"featured_media":909,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25],"tags":[48,266,73],"class_list":["post-21067","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-angular-js","tag-angular","tag-angularjs","tag-dependency-injection"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AngularJS Dependency Injection Example - Web Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"Hello readers, in this tutorial, we will learn and understand how the dependency injection principle works in the angular library\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AngularJS Dependency Injection Example - Web Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"Hello readers, in this tutorial, we will learn and understand how the dependency injection principle works in the angular library\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webcodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2018-03-09T14:15:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-04-18T13:10:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Yatin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yatin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/\"},\"author\":{\"name\":\"Yatin\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/6c946b8aea919fb2cd83fb17268e9367\"},\"headline\":\"AngularJS Dependency Injection Example\",\"datePublished\":\"2018-03-09T14:15:33+00:00\",\"dateModified\":\"2018-04-18T13:10:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/\"},\"wordCount\":1568,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg\",\"keywords\":[\"angular\",\"angularjs\",\"Dependency Injection\"],\"articleSection\":[\"Angular.js\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/\",\"name\":\"AngularJS Dependency Injection Example - Web Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg\",\"datePublished\":\"2018-03-09T14:15:33+00:00\",\"dateModified\":\"2018-04-18T13:10:04+00:00\",\"description\":\"Hello readers, in this tutorial, we will learn and understand how the dependency injection principle works in the angular library\",\"breadcrumb\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/#primaryimage\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.webcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/javascript\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Angular.js\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/javascript\/angular-js\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"AngularJS Dependency Injection Example\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"name\":\"Web Code Geeks\",\"description\":\"Web Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.webcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webcodegeeks\",\"https:\/\/x.com\/webcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/6c946b8aea919fb2cd83fb17268e9367\",\"name\":\"Yatin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3f011dd665043468ba193f7b07472ebbedfa359cff5e576a91a5901c130ca6f1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3f011dd665043468ba193f7b07472ebbedfa359cff5e576a91a5901c130ca6f1?s=96&d=mm&r=g\",\"caption\":\"Yatin\"},\"description\":\"The author is graduated in Electronics &amp; Telecommunication. During his studies, he has been involved with a significant number of projects ranging from programming and software engineering to telecommunications analysis. He works as a technical lead in the information technology sector where he is primarily involved with projects based on Java\/J2EE technologies platform and novel UI technologies.\",\"sameAs\":[\"https:\/\/www.webcodegeeks.com\"],\"url\":\"https:\/\/www.webcodegeeks.com\/author\/yatin-batra\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AngularJS Dependency Injection Example - Web Code Geeks - 2026","description":"Hello readers, in this tutorial, we will learn and understand how the dependency injection principle works in the angular library","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/","og_locale":"en_US","og_type":"article","og_title":"AngularJS Dependency Injection Example - Web Code Geeks - 2026","og_description":"Hello readers, in this tutorial, we will learn and understand how the dependency injection principle works in the angular library","og_url":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/","og_site_name":"Web Code Geeks","article_publisher":"https:\/\/www.facebook.com\/webcodegeeks","article_published_time":"2018-03-09T14:15:33+00:00","article_modified_time":"2018-04-18T13:10:04+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg","type":"image\/jpeg"}],"author":"Yatin","twitter_card":"summary_large_image","twitter_creator":"@webcodegeeks","twitter_site":"@webcodegeeks","twitter_misc":{"Written by":"Yatin","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/#article","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/"},"author":{"name":"Yatin","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/6c946b8aea919fb2cd83fb17268e9367"},"headline":"AngularJS Dependency Injection Example","datePublished":"2018-03-09T14:15:33+00:00","dateModified":"2018-04-18T13:10:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/"},"wordCount":1568,"commentCount":0,"publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg","keywords":["angular","angularjs","Dependency Injection"],"articleSection":["Angular.js"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/","url":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/","name":"AngularJS Dependency Injection Example - Web Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/#primaryimage"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg","datePublished":"2018-03-09T14:15:33+00:00","dateModified":"2018-04-18T13:10:04+00:00","description":"Hello readers, in this tutorial, we will learn and understand how the dependency injection principle works in the angular library","breadcrumb":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/#primaryimage","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/angularjs-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.webcodegeeks.com\/javascript\/angular-js\/angularjs-dependency-injection-example\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.webcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"JavaScript","item":"https:\/\/www.webcodegeeks.com\/category\/javascript\/"},{"@type":"ListItem","position":3,"name":"Angular.js","item":"https:\/\/www.webcodegeeks.com\/category\/javascript\/angular-js\/"},{"@type":"ListItem","position":4,"name":"AngularJS Dependency Injection Example"}]},{"@type":"WebSite","@id":"https:\/\/www.webcodegeeks.com\/#website","url":"https:\/\/www.webcodegeeks.com\/","name":"Web Code Geeks","description":"Web Developers Resource Center","publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.webcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.webcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.webcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webcodegeeks","https:\/\/x.com\/webcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/6c946b8aea919fb2cd83fb17268e9367","name":"Yatin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3f011dd665043468ba193f7b07472ebbedfa359cff5e576a91a5901c130ca6f1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3f011dd665043468ba193f7b07472ebbedfa359cff5e576a91a5901c130ca6f1?s=96&d=mm&r=g","caption":"Yatin"},"description":"The author is graduated in Electronics &amp; Telecommunication. During his studies, he has been involved with a significant number of projects ranging from programming and software engineering to telecommunications analysis. He works as a technical lead in the information technology sector where he is primarily involved with projects based on Java\/J2EE technologies platform and novel UI technologies.","sameAs":["https:\/\/www.webcodegeeks.com"],"url":"https:\/\/www.webcodegeeks.com\/author\/yatin-batra\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/21067","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/users\/2162"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/comments?post=21067"}],"version-history":[{"count":0,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/21067\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media\/909"}],"wp:attachment":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media?parent=21067"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/categories?post=21067"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/tags?post=21067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}