Angular ngRoute导致无限循环和堆栈溢出

时间:2015-03-23 12:40:10

标签: javascript angularjs node.js

我可能在这里有点厚,但我试图让ng-view和ngRoute工作,并且认为我把它全部工作了,但似乎整个事情只是循环。

要解释一下,它是一个节点服务器,使用express,jade,angular。 它被设置为只调用布局,然后在ngroute中打开路由并根据它进行渲染。 所以这是我的layout.jade

doctype html
html(ng-app="goMinute")
  head
    title= title
    base(href="/")
    link(rel='stylesheet', href='/stylesheets/style.css')
  banner
    .banner GoMinut
        p.banner-hit The place for simple meeting minutes

  body(ng-controller='BodyController as app')
      div.content
          ng-view


    script(src='/bower_components/angular/angular.js')
    script(src='/bower_components/angular-route/angular-route.js')
    script(src='/bower_components/angular-route/angular-route.js')
    script(src='/bower_components/angular-resource/angular-resource.js')
    script(src='/bower_components/jquery/dist/jquery.js')
    script(src='/bower_components/bootstrap/dist/js/bootstrap.min.js')
    script(src='/javascripts/goMinute.js')

到目前为止,所以上帝,不得不设置基础的东西,和/似乎让它快乐(不确定这是否称为无限循环 然后调用包含路由的goMinute.js,它们就像它们被称为

一样
(function() {
    var goMinute = angular.module('goMinute', ["ngResource", "ngRoute"]).
        config(['$routeProvider', '$locationProvider',
            function ($routeProvider, $locationProvider) {
                $locationProvider.html5Mode(true);
                $routeProvider
                    .when('/index', {
                        templateUrl: 'partials/index',
                        controller: 'IndexController'
                    })
                    .when('/login', {
                        templateUrl: '/partials/login',
                        controller: 'loginController'
                    })

                    .otherwise({redirectTo: "/login"});
            }
        ]
    );
    goMinute.controller('BodyController', function ($scope, $http) {
        console.log("I am body")
    })

    goMinute.controller('IndexController', function ($scope, $http) {
        console.log("This will be Index")
    })

    goMinute.controller('loginController', function ($scope, $http) {
        console.log("This will be login")
    });
})();

然而,每当我调用网页时(如果我调用/ index,/ login或其他,则相同。它将超过“我是正文”一次,然后在抛出堆栈溢出之前将IndexController大约500次。 有什么想法吗? 哦,当时,它生成布局,但似乎没有输出索引部分中的信息。

1 个答案:

答案 0 :(得分:0)

经过多次调整之后我觉得我发现了这个问题(而且我找错了地方)。

问题不在路由器中,或者至少我不这么认为。问题在于快速路由器。 我最初设置如下:

app.use('/', routes);
app.use('*', routes);
app.use('/users', users);
app.use('/partials', partials);

哪个适用于其他网站。但我开始思考,如果循环是由服务器端引起的,那么删除*行

app.use('/', routes);
app.use('/users', users);
app.use('/partials', partials);

这似乎已经成功了。问题是我添加了*行,因为有一些例子告诉我,所以当然有机会我现在就把它打破了,而且看起来好像它正在工作。