【问题标题】:Tried to load angular more than once with express 4尝试使用 express 4 多次加载 angular
【发布时间】:2014-11-03 16:01:21
【问题描述】:

当我尝试加载角度路线(因此也是模板)时,我收到此错误:

警告:尝试多次加载 Angular。

我认为路由存在导致无限循环的问题,但我无法弄清楚问题所在。

server.js

var express = require('express');
var bodyParser = require('body-parser');
var app = express(); //Create the Express app

app.use(express.static(__dirname + '/public')); 

app.set('views', __dirname + '/server/views');

app.set('view engine', 'ejs');

module.exports = app;

app.js

angular
  .module('vapescannerApp', [
    'ngAnimate',
    'ngResource',
    'ngRoute',
    'theControllers'
  ])
  .config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.ejs',
        controller: 'MainCtrl'
      })
      .when('/about', {
        templateUrl: 'views/about.ejs',
        controller: 'AboutCtrl'
      })
      .when('/something/:id', {
        templateUrl: 'views/ProductDetails.ejs',
        controller: 'DetailsCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });
  });

www.js

var app = require('../server');

app.get('*', function(req, res){

    res.render("index");

});

app.set('port', process.env.PORT || 8000);

var server = app.listen(app.get('port'), function() {
  console.log('Express server listening on port ' + server.address().port);
});

应用结构

-- bin
   - www.js
-- public
   - app.js
-- server
   -- views
      - productDetails.ejs
      - main.ejs
      - about.ejs

【问题讨论】:

    标签: angularjs express


    【解决方案1】:
    app.get('*', function(req, res){
        res.render("index");
    

    很难准确地说,但这会将每一个路由重定向到渲染index。如果您的路由与公共目录中的文件不匹配,express 将尝试再次呈现索引文件。如果索引文件包含 Angular,则包含可能会呈现两次。您可以关闭此路由或使其更具体以用于调试目的,以确认您的所有资源都被正确包含。

    【讨论】:

    • 你是对的。在上面的路线中添加了部分,它正在工作。感谢您的帮助。
    猜你喜欢
    • 2014-05-01
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 1970-01-01
    相关资源
    最近更新 更多