【问题标题】:Angular : Uncaught ReferenceError: app is not definedAngular:未捕获的 ReferenceError:未定义应用程序
【发布时间】:2017-11-08 19:36:04
【问题描述】:

我正在尝试创建这个非常简单的 meanstack 应用程序,它几乎可以运行,但在重定向到索引页面时出现未捕获的引用错误。服务器运行正常。浏览器在索引页面中显示文本(正在加载..)。但是由于自定义标签应该与选择器一起出现在 app.component.ts 并打印“我的第一个 Angular 应用程序”,它没有。相反,它在控制台中说“未定义应用程序”。

有人可以帮忙吗?我是 MEAN 和 Angular 的新手,请详细说明。如果有任何(或很多)错误,请原谅我的愚蠢错误。

这是我的 index.html

<html>
<head>
<title>MyTaskList</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="styles.css">
<!-- 1. Load libraries -->
<!-- Polyfill(s) for older browsers -->
<script src="node_modules/core-js/client/shim.min.js"></script>
<script src="node_modules/zone.js/dist/zone.js"></script>
<script src="node_modules/reflect-metadata/Reflect.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<!-- 2. Configure SystemJS -->
<script src="systemjs.config.js"></script>
<script>System.import(app).catch(function(err){ console.error(err);});</script>
</head>
<!-- 3. Display the application -->
<body>
<my-app>Loading...</my-app>
</body>
</html>

这是我的 app.component.ts

import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: 'My First Angular App'
})
export class AppComponent { }

我的 index.js

var express = require('express');
var router = express.Router();

router.get('/', function(req, res, next){
res.render('index.html');
});

module.exports = router;

最后是我的 server.js(起点)

var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');

var index = require('./routes/index');
var tasks = require('./routes/tasks');

var port = 3000;

var app = express();

app.set('views', path.join(__dirname, 'views'));
app.set('view engine','ejs');
app.engine('html', require('ejs').renderFile);
app.use(express.static(path.join(__dirname, 'client')));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

app.use('/', index);
app.use('/api', tasks);

app.listen(port, function(){
console.log('Server started on port '+port);
});

【问题讨论】:

  • 可以将应用放在引号中..?也许您的应用程序文件不在根目录中
  • @Wernerson :非常感谢老兄。它起作用了(将应用程序放在引号中)。没想到,可能是这个原因。
  • 如果您能支持我的回答并将其标记为已接受,我会很高兴 :)
  • 解决了我的问题,谢谢

标签: javascript html angular mean-stack mean


【解决方案1】:

app 放在引号中,因为 Javascript 认为 app 是一个变量,但它实际上应该是一个字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多