双花括号不显示我想要的内容。
双花括号不显示我想要的内容。
我只是在测试中将一个AngularJS构建推到Heroku上,但它在双花括号中并没有显示我想要的内容。不确定问题在哪里,因为我的srcs似乎是正确的。
这是我的index.ejs文件:
{{rantList.piece.name}}
{{rantList.piece.paragraph}}
{{"Hello"}}
这是我的app.js文件:
(function(){
var app = angular.module('rantList', []);
app.controller('RantController', function(){
this.piece = rant;
});
var rant = {
name: 'First User',
paragraph: '....',
}
})();
这是我的server.js文件:
var express = require('express');
var app = express();
// set the port of our application
// process.env.PORT lets the port be set by Heroku
var port = process.env.PORT || 8080;
// set the view engine to ejs
app.set('view engine', 'ejs');
// make express look in the public directory for assets (css/js/img)
app.use(express.static(__dirname + '/public'));
// set the home page route
app.get('/', function(req, res) {
// ejs render automatically looks in the views folder
res.render('index');
});
app.listen(port, function() {
console.log('Our app is running on http://localhost:' + port);
});
在双花括号中,它显示rantList.piece.name而不是First User(第一个例子),在第二个例子中它显示{{"Hello World"}}而不是Hello World。
感谢您的时间,我对此还不太熟悉,希望能得到任何帮助。
(Double curly backets not displaying what I want)这个问题出现的原因是页面中的双大括号不能显示期望的内容。解决方法是检查浏览器控制台是否有错误,并确保所有资源都使用https加载。
根据你提供的信息,你可能在使用Heroku域名。Heroku域名只能通过https访问,并且Chrome不会在https网址上加载非https资源,所以你需要确保所有资源都是https的。
在你的情况下,你的angular和boostrap库没有通过https加载。幸运的是,这些CDN支持https,所以你只需要将URL更改为以下内容:
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
你的浏览器控制台可能会报告类似以下内容的错误:
Mixed Content: The page at 'xxx' was loaded over HTTPS, but requested an insecure script 'http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js'. This request has been blocked; the content must be served over HTTPS.
这就是为什么你应该始终检查控制台中是否有错误。大多数情况下,控制台会告诉你问题所在。
另外,你的app.js
路径看起来是错误的。/../app.js
不是一个有效的URL。在没有看到你的文件结构之前,很难确定正确的路径,但如果参考angular种子项目的话,应该只是这样的:
<script type="text/javascript" src="app.js"></script>
同样,如果URL不正确,控制台会告诉你。
好的,我将我的URL更改为https。是的,我一直在检查控制台是否有错误。我得到了两个错误,一个是app.js的404错误,另一个是angular.min.js的Uncaught Error: [$injector:modulerr]。我应该将app.js文件放在与index一起的views文件夹中以便更容易访问吗?我尝试了不同的路径,但都没有成功。至于未捕获的错误,我不知道如何解决。我尝试了包括ng-route并将其加载为依赖模块,但没有成功。
你可以将app.js
文件放在任何你喜欢的位置,只需确保src路径正确即可。如果你创建了一个js
文件夹,那么src路径将是"js/app.js"
。如果它在根目录下(如angular-seed),那么路径就是"app.js"
。我不知道你从哪里得到"/../app.js"
,但它肯定不是一个有效的路径。关于你的另一个问题,这个Stack Overflow的答案可能会有所帮助: stackoverflow.com/questions/21045416/…