我在 codepen 中使用以下代码并面临这个问题, 对于 conctact,我收到以下错误
为什么它给出的是联系人错误而不是姓名?
我该如何解决这个问题?
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)
这是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);
}]);
这是我正在使用的 HTML 文件。
<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>
请回答这些问题
- 为什么联系失败而不是姓名?
- 联系人是数字数据,我应该给它设置什么默认值?
最佳答案
$scope.name = name;
$scope.contact = contact;
它的联系人抛出错误是因为您的应用程序中没有全局联系人变量,但是如果您转到控制台并键入名称.. 有一个全局变量名称等于 ""
所以它不会抛出错误。
如果您将 $scope.name
替换为任何其他变量,它会为此抛出错误。这都是因为名称是全局的,它等于空字符串。
它为 age
而不是 contact
抛出的 fiddle 。
http://fiddle.jshell.net/o6a54Lw5/1/
它为 contact
而不是 name
抛出的 fiddle 。
http://fiddle.jshell.net/o6a54Lw5/2/
现在在第二个 fiddle 中,如果您转到控制台并键入 name
,您将看到它声明的 global
。
关于javascript - Angular 中的某些变量未定义错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38741720/