Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the cause for "angular is not defined"

I'm following the video tutorials on egghead.io but while trying to follow his example when he created a factory (see video here) I keep getting "angular is not defined" Reference Error but I have included the angular script

This is my html page:

<!DOCTYPE html> <html>     <head>     <title>Prototype</title>     <link rel="stylesheet" type="text/css" href="foundation.min.css">     <script type="text/javascript" src="main.js"></script>     </head>     <body>      <div data-ng-app="">          <div data-ng-controller="FirstController">             <input type="text" data-ng-model="data.message">             <h1>{{ data.message }}</h1>         </div>            <div data-ng-controller="SecondController">             <input type="text" data-ng-model="data.message">             <h1>{{ data.message }}</h1>         </div>       </div>     <script type="text/javascript" src="angular.min.js"></script>     </body> </html> 

and this is my javascript file "main.js":

//Services     // step 1 create an app                                  var myApp = angular.module('Data', []).     // tep 2 create factory                 // Service name, function     myApp.factory('Data', function(){         return { message: "I'm Data from a Service" }     });    //Controllers     function FirstController($scope, Data){         $scope.data = Data;     }      function SecondController($scope){      } 

I have read a few posts where similar happen (here) and please correct me if I'm wrong but I think it is to do with Boot strapping andI have tried manually bootstrapping using angular.bootstrap(document, ['Data']); but with no success, still get same error.

But What I want to know is, Why this works for so many examples online, like the egghead video series, but I have issues as I believe I have followed his video very closely. is it a change in angular in recent versions?

like image 659
jonnie Avatar asked Aug 04 '13 15:08

jonnie


People also ask

Is not defined in angular?

While programming in JavaScript, jQuery or Angular JS, coders often encounter an error called Uncaught ReferenceError: $ is not defined. This usually happens when the $, that may be a variable or a method is not properly defined but is being used.

What does it mean when something is not defined in HTML?

If you get a TypeError along the lines " Blah is undefined" or "cannot read property foo of undefined ", it means that you have a variable or property that has the value undefined , which is the default value for a variable until you assign something to it.

Is not defined jquery angular?

You need to import jquery with angular-cli . Edit your angular-cli. json file. Find script array and add jquery.


1 Answers

You have to put your script tag after the one that references Angular. Move it out of the head:

<script type="text/javascript" src="angular.min.js"></script> <script type="text/javascript" src="main.js"></script> 

The way you've set it up now, your script runs before Angular is loaded on the page.

like image 116
Joseph Silber Avatar answered Sep 21 '22 19:09

Joseph Silber