角度未捕获的对象

时间:2014-05-24 13:41:07

标签: javascript angularjs

我是Angular的新手,所以我仍然不知道它是如何运作的。我偶然发现了一个问题(很早就......),下面的代码在控制台中给了我“Uncaught Object”并打破了Angular。 .config部分是罪魁祸首,如果我删除它,页面加载正常。我不完全确定错误是如何引起的,因为对我而言,一切看起来都不错?

var app = angular.module('app', ['ngRoute'])

    .config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
        $routeProvider
            .when('/dashboard', {
                templateUrl: '/app/views/admin.html',
                controller: 'DashboardController'
            })
            .otherwise('/', {
                redirectTo: '/'
            })

        $locationProvider.html5mode(true);
    }])

    .controller('DashboardController', ['$scope', function ($scope, Security) {
        $scope.security = Security;
    }])

6 个答案:

答案 0 :(得分:30)

我有同样的错误;如果您激活Chrome以暂停例外,您将能够获得更详细的错误信息 angular uncaught object

答案 1 :(得分:6)

.otherwise只接受一个参数 - 一个对象,其中包含有关未定义的路由需要执行的操作的信息。

在您的情况下,除了对象之外,您似乎还在向其传递路径。

替换:

.otherwise('/', {
    redirectTo: '/'
})

.otherwise({
    redirectTo: '/dashboard'
});

请注意,您需要重定向到存在的路径。 '/'是不存在的路径。 '/ dashboard'是一个路径,因此您重定向到它。或者,为'/'路径

定义处理程序

答案 2 :(得分:1)

我发布了我自己的自己的解决方案,因为这个问题背后似乎有几个因素,到目前为止还没有人谈过这个问题。

也就是说,尝试在$.ready();

之外编写代码
<script>
$(function(){
  // This leaves "Uncaught object" error in Chrome!
  // var app = angular.module('testApp', ['ngRoute']);
});

// So get it out of $.ready()!! 
var app = angular.module('testApp', ['ngRoute']);
</script>

答案 3 :(得分:1)

在这种情况下,看起来错误是由此引起的:

$locationProvider.html5mode(true); <-- mode should be capital 'M'.

答案 4 :(得分:0)

确保在HTML文件中的angular-route.js之前加载angular.js。 像:

<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular-route.js"></script>

答案 5 :(得分:0)

我刚碰到这个,在我的情况下,这是由于使用了UI-Router并且具有重复的州名。