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

标签 javascript angularjs node.js

我在这里可能有点厚,但我试图让 ng-view 和 ngRoute 工作,并认为我已经全部工作了,但看起来整个事情只是循环。

解释一下,它是一个 Node 服务器,使用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 或其他,则独立。它会经过“I am body”一次,然后点击 IndexController 大约 500 次,然后引发堆栈溢出。 有什么想法吗? 哦,当时它生成了布局,但似乎没有输出索引部分中的信息。

最佳答案

经过深思熟虑,我想我发现了这个问题(而且我找错了地方)。

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

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);

这似乎已经成功了。问题是我添加了 * 行,因为一些示例告诉我这样做,所以当然有可能我现在破坏了它,而且看起来它正在工作。

关于javascript - Angular ngRoute 导致无限循环和堆栈溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29210454/

相关文章:

javascript - 什么时候应该使用 call() 与直接调用函数?

javascript - HTML + JS 如何更改/取消更改文本 onclick

angularjs - Angular 摘要身份验证

使用 Prisma 执行 MySQL 查询花费的时间太长

javascript - 引用错误 : window is not defined in React

javascript - 为所有人在网络上获取 .mov

javascript - 对javascript中的while循环感到困惑

angularjs - 环回客户端身份验证检查

javascript - 使用 grunt build 生成的 dist 文件夹不起作用

node.js - gulp-jade 报告错误,如 'Cannot read property ' xxx' of undefined'