【发布时间】:2015-01-26 20:23:02
【问题描述】:
我正在学习 angularjs 并遵循来自 - here 的教程
这是我的 index.jsp -
<!doctype html>
<html lang="en" ng-app="phoneCatApp">
<head>
<title>Angular Example</title>
<script type="text/javascript" src="angular/angular.min.js"></script>
<script type="text/javascript" src="app/js/controllers.js"></script>
</head>
<body ng-controller="phoneListCtrl">
Search : -
<input ng-model="query"/> Sort by:
<select ng-model="orderProp">
<option value="name">Alphabetical</option>
<option value="age">Newest</option>
<option value="-age">Oldest</option>
</select>
<p>Total number of phones: {{phones.length}}</p>
<ul>
<li ng-repeat="phone in phones | filter:query | orderBy:orderProp"><span>{{phone.name}}</span>
<p>{{phone.snippet}}</p></li>
</ul>
</body>
</html>
这个版本的 controller.js 可以工作 -
var phonecatApp = angular.module('phoneCatApp', []);
phonecatApp.controller('phoneListCtrlOld', function($scope) {
$scope.phones = [ {
'name' : 'Nexus S',
'snippet' : 'Fast just got faster with Nexus S.',
'age' : 1
}, {
'name' : 'Motorola XOOM™ with Wi-Fi',
'snippet' : 'The Next, Next Generation tablet.',
'age' : 2
}, {
'name' : 'MOTOROLA XOOM™',
'snippet' : 'The Next, Next Generation tablet.',
'age' : 3
} ];
$scope.orderProp = 'age';
});
但在下一步中,我尝试使用 ajax 调用获取此 json 数据,因此控制器看起来像这样 -
var phonecatApp = angular.module('phoneCatApp', []);
phonecatApp.controller('phoneListCtrl', function($scope, $http) {
$http.get('app/js/phones.json').success(function(data) {
$scope.phones = data;
});
$scope.orderProp = 'age';
});
但这给了我以下错误 -
类型错误:dbg 未定义。 debuggerLib.js(第 530 行)
我可以在 firebug 中看到 ajax 调用发生在代码 304 Not Modified 的情况下。我可以看到响应的数据。但响应内容类型不是 json。
请检查一下并说出问题所在?我是否缺少要包含的任何 js 文件或其他内容。
【问题讨论】:
-
您的萤火虫安装是否可能以某种方式搞砸了?我认为
debuggerLib.js是萤火虫的文件。在任何情况下,在一个名为 that 的文件中,有一行代码试图在名为dbg的变量上调用一些代码,该变量在代码中该点不存在。找出该文件对应的内容,您应该会找到答案。 -
尝试在 Chrome 中重现同样的错误。如果不重复,萤火虫就是罪魁祸首。
-
我刚刚在我正在处理的项目中遇到了这个问题,但是我的 javascript 代码在我的 $http.get 函数内部有一个错误,一旦纠正,就不会再抛出这个错误了。我在您的代码中没有看到任何彻底的错误,但也许可以尝试注释掉代码,直到您找到导致错误的行。
-
我也有这个问题。这真的很烦人,因为它使得使用 firebug 调试 Angular 变得非常困难。它发生在某些 Angular 错误中并掩盖了真正的问题。抱歉,我也没有解决办法。
-
@rgimmy 这对我来说也是如此。我的脚本中有一些错误,我收到了这个愚蠢的错误。一旦我纠正了问题,这个错误就消失了。