Ankur Marwaha Ankur Marwaha - 2 months ago 5x
AngularJS Question

Not defined error for some variables in angular?

I am using the following code in codepen and facing this issue,
for conctact i am getting the following error

Why is it giving error for contact and not for name?

How can i solve this ?

angular.js:13550 ReferenceError: contact is not defined
at new <anonymous> (pen.js:8)
at Object.invoke (angular.js:4665)
at R.instance (angular.js:10115)
at n (angular.js:9033)
at g (angular.js:8397)
at g (angular.js:8400)
at angular.js:8277
at angular.js:1751
at n.$eval (angular.js:17229)
at n.$apply (angular.js:17329)

Here is js file

var app = angular.module("crud", []);

app.controller("ctrl", ['$scope', function($scope) {
$ = [3, 4, 5, 34, 34];
$ = name;
$ = contact;
$scope.obj = {
name: $,
contact: $

Here is the HTML file that i am using.

<body ng-app="crud">
<div ng-controller="ctrl">
<tr ng-repeat="x in data track by $index">

PLEASE answer these questions

  1. Why is it failing at contact and not at name ?

  2. Contact is number data, what should i give the default value to it ?

  $ = name;
  $ = contact;

Its throwing error for contact is because there is no global contact variable in your app, but if you go to console and type name.. there is a global variable name which equals "" so it does not throw error.

If you replace $ with any other variable, it would throw error for that. Its all because name is global which equals empty string.

A fiddle where it throws for age instead of contact.

A fiddle where it throws for contact instead of name.

Now in the second fiddle if you go to console and type name, you would see its declared global.