我在这里可能有点厚,但我试图让 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/