Ankur Marwaha Ankur Marwaha - 1 year ago 83
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 ?

Answer Source
  $ = 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.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download