如何在Angular中获得更详细的错误信息?

时间:2014-06-06 09:59:43

标签: javascript angularjs google-chrome

我在Chrome中只收到此错误文字。没有任何其他信息:

enter image description here

这是什么意思?发生了什么?有没有办法告诉Angular或Chrome显示更详细的错误信息?

这是我的 app.js 文件。没有其他内容包括在内:

'use strict';


// Declare app level module which depends on filters, and services

var vsApp = angular.module('vsApp', [
    'ngRoute',
    'vsApp.filters',
    'vsApp.services',
    'vsApp.directives',
    'vsApp.controllers'
]);

vsApp.config(["$routeProvider"], function($routeProvider) {
    $routeProvider.when('/registration', {templateUrl: 'partials/reg.html', controller: 'regCtrl'});
    $routeProvider.when('/login', {templateUrl: 'partials/login.html', controller: 'loginCtrl'});
    $routeProvider.otherwise({redirectTo: '/'});
});

vsApp.controller("regCtrl", function() {});
vsApp.controller("loginCtrl", function() {});

ng-app属性包含:

<!DOCTYPE html>
<html ng-app="vsApp">

我的<head>代码:

<script id="angularScript" src="/bower_components/angular/angular.js"></script>
<script src="/bower_components/angular-route/angular-route.js"></script>
<script src="/assets/js/app.js"></script>

UPD:

量角器带来了更多信息:

   Message:
     UnknownError: unknown error: [$injector:modulerr] Failed to instantiate module vsApp due to:
Error: [ng:areq] Argument 'fn' is not a function, got string
http://errors.angularjs.org/1.3.0-build.2795+sha.222d473/ng/areq?p0=fn&p1=not%20a%20function%2C%20got%20string
    at http://localhost:3000/bower_components/angular/angular.js:78:12
    at assertArg (http://localhost:3000/bower_components/angular/angular.js:1583:11)
    at assertArgFn (http://localhost:3000/bower_components/angular/angular.js:1593:3)
    at annotate (http://localhost:3000/bower_components/angular/angular.js:3318:5)
    at Object.invoke (http://localhost:3000/bower_components/angular/angular.js:3986:21)
    at runInvokeQueue (http://localhost:3000/bower_components/angular/angular.js:3915:35)
    at http://localhost:3000/bower_components/angular/angular.js:3924:11
    at Array.forEach (native)
    at forEach (http://localhost:3000/bower_components/angular/angular.js:320:11)
    at loadModules (http://localhost:3000/bower_components/angular/angular.js:3905:5)

1 个答案:

答案 0 :(得分:4)

我不知道如何获得更详细的错误消息。我认为它甚至不可能。但是,您似乎至少有一个语法错误:

vsApp.config(["$routeProvider", function($routeProvider) {
   /* notice the [ ] */
}]);

因为您正在使用带注释的依赖项注入,就像在文档中一样:https://docs.angularjs.org/guide/providers#providers_provider-recipe

myApp.config(["unicornLauncherProvider", function(unicornLauncherProvider) {
  unicornLauncherProvider.useTinfoilShielding(true);
}]);

在任何情况下,我都试图重现您收到的错误消息,但我只获取了有用的错误消息。见http://jsfiddle.net/CE6j9/1/

Uncaught Error: [$injector:modulerr] Failed to instantiate module vsApp due to:
Error: [ng:areq] Argument 'fn' is not a function, got string
http://errors.angularjs.org/1.2.1/ng/areq?p0=fn&p1=not%20a%20function%2C%20got%20string
at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:78:12
at assertArg (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:1346:11)
at assertArgFn (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:1356:3)
at annotate (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:2926:5)
at Object.invoke (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:3587:21)
at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:3534:37
at Array.forEach (native)
at forEach (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:300:11)
at loadModules (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:3521:5)
at createInjector (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js:3461:11)
http://errors.angularjs.org/1.2.1/$injector/modulerr?p0=vsApp&p1=Error%3A%2…cloudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.2.1%2Fangular.js%3A3461%3A11)
http://errors.angularjs.org/1.2.1/$injector/modulerr?p0=vsApp&p1=Error%3A%2…cloudflare.com%2Fajax%2Flibs%2Fangular.js%2F1.2.1%2Fangular.js%3A3461%3A11)     angular.js:78
(anonymous function) angular.js:78
(anonymous function) angular.js:3555
forEach angular.js:300
loadModules angular.js:3521
createInjector angular.js:3461
doBootstrap angular.js:1282
bootstrap angular.js:1297
angularInit angular.js:1246
(anonymous function) angular.js:20126
trigger angular.js:2298
(anonymous function) angular.js:2562
forEach angular.js:300
eventHandler 

也许你还有别的东西在干扰? 当我点击箭头时,我得到了错误的下半部分(行号为S)。也许你在chrome中有错误的设置?