Angular js app在启动时消化无限错误循环

时间:2015-12-30 16:27:29

标签: javascript angularjs node.js express mean-stack

我是Angular的新手。我正在使用node,jade和angular构建一个新项目。尝试实现捕获所有服务器路由。当索引页面加载时,它会进入这个使应用程序崩溃的循环。我尝试了几种不同的方法来尝试让它发挥作用。不知道我做错了什么!!

节点主路线

 module.exports = function(app){
    app.get('*', function (req, res) {
        res.render('index', {
            bootstrappedAccount:req.user
        });
    });
    app.get('/partials/*',function(req,res){
        res.render('../../public/app/' + req.params[0]);
    });
}

Index.jade

 extends ../includes/layout.jade

block main.js-content
    .navbar.navbar-inverse.navbar-fixed-top
        .container
            .navbar-header
                a.navbar-brand(href='/') Template

            .navbar-collapse.collapse
                ul.nav.navbar-nav
                    li
                        a(href='/') home
                div(ng-include="'/partials/account/navbar-login'")
    section.content
        div(ng-view)

     footer.container.text-center
        p © 2016 Company Name Corp International Ltd.

layout.jade(其中加载了角度。如果我从主体中取出ng-app('app')页面加载。所以我知道它的角度应用程序导致问题。

doctype html

html
    head
        title Template
        link(href="/favicon.ico",rel="shortcut icon",type="image/x-icon")
        link(rel="stylesheet",href="/vendor/bootstrap/dist/css/bootstrap.min.css")
        link(rel="stylesheet",href="/vendor/toastr/toastr.css")
        link(rel="stylesheet",href="/css/customsite.css")

    body(ng-app='app')
        include currentUser
        block main.js-content
        include scripts

app.js(Initalize Angular app)

  angular.module('app',['ngResource','ngRoute']);

angular.module('app').config(function($routeProvider,$locationProvider) {

    $locationProvider.html5Mode({
        enabled: true,
        requireBase: false
    });
    $routeProvider.when('/', {templateUrl: '/partials/main/main', controller: 'mvMainCtrl'})
});

main.jade

.container
.jumbotron
    h1 The Startup Project
    p This appy.
.row
    .col-md-6
        div(ng-include="'/partials/main/featured-courses'")
    .col-md-6
        div(ng-include="'/partials/main/new-courses'")

2 个答案:

答案 0 :(得分:0)

你真的需要设置这个:

app.get('/partials/*',function(req,res){
    res.render('../../public/app/' + req.params[0]);
});

Angular应加载您包含的部分内容而不在服务器端设置特殊路由。

答案 1 :(得分:0)

问题发生在templateUrl部分的app.js文件中。我没有正确传递字符串路由值,因此它会返回并重新加载服务器'/'页面并连续加载客户端'/'。我只是将字符串更改为'/ partials /?path = / main / main'这样我的部分路径就不必改变了。如果要加载没有partials路由。请确保templateUrl上的路径是正确的。如果您遇到问题的可能性超过了该路线。只要玩弄它,直到你搞清楚。我甚至将我改为'/ signup'以确保摘要错误停止并且我在正确的路径上修复它。