2016-08-03 3 views
7

ich den folgenden Code in codepen und dieses Problem konfrontiert, für conctactNicht definierter Fehler für einige Variablen in angular?

Warum es gibt Fehler für den Kontakt und nicht für Namen ich erhalte die folgenden Fehler mit?

Wie kann ich das lösen?

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) 

Hier ist js

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

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

Hier ist die HTML-Datei Datei, die ich verwende.

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

Bitte beantworten Sie diese Fragen

  1. Warum ist es bei Kontakt versagen und nicht an Namen?
  2. Kontakt ist Anzahl Daten, was soll ich den Standardwert geben? Hier
+1

, was Sie in Kontakt bekommen, die Sie '$ scope.contact' zuweisen? –

Antwort

4
$scope.name = name; 
    $scope.contact = contact; 

Sein Wurffehler für den Kontakt ist, weil es keine globale Kontakt Variable in Ihrer Anwendung ist, aber wenn man Namen zu trösten und Art .. gibt es einen globalen Variablennamen, die "" so entspricht Es wird kein Fehler ausgegeben.

Wenn Sie $scope.name durch eine andere Variable ersetzen, würde es Fehler dafür werfen. Es ist alles, weil der Name global ist, was einer leeren Zeichenfolge entspricht.

Eine Geige, wo es für age statt contact wirft. http://fiddle.jshell.net/o6a54Lw5/1/

Eine Geige, wo es für contact statt name wirft. http://fiddle.jshell.net/o6a54Lw5/2/

nun in der zweiten Geige, wenn Sie gehen name zu trösten und geben Sie, würden Sie seine global erklärt sehen.

+0

Danke. und dieser - Kontakt ist Zahl Daten, was sollte ich den Standardwert geben? –

+0

Sie können alles geben, abhängig von Ihrer Anwendung, $ scope.contact = 0; oder was immer Wert Sie wollen, um es zu behalten ... – Thalaivar

0

ist die Frage,

$scope.contact = contact; 

Sie nicht den Kontakt und den Namen überall definiert haben.

Working APP

+0

Ich habe den Namen auch nicht definiert. –

+0

Bitte lesen Sie die Frage noch einmal und versuchen Sie genau zu beantworten, was ich gefragt habe. –

+0

@AnkurMarwaha Überprüfen Sie die Beispiel-App – Sajeetharan

2

Sie nicht Namen wie name für eine globale Variable geben, wie es window.name bezeichnet, weil

window.name wird/den Namen des Fensters festlegt.

Aus diesem Grund seine nie undefiniert und so wird die $scope es akzeptieren

Verwandte Themen