gpt4 book ai didi

jquery - 如何确保 javascript 位于 express-handlebars 模板中代码的底部?

转载 作者:搜寻专家 更新时间:2023-10-31 23:00:47 25 4
gpt4 key购买 nike

我对 Jade 模板也问过同样的问题。但我现在想使用 Handlebars 。主要原因是它是 html 之类的,对我来说更容易。

这是我的 View 文件夹结构:

views 
|--- home.handlebars
|--- layouts
|---- main.handlebars

我的布局是:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>{{title}}</title>
<link rel="stylesheet" href="/stylesheets/style.css">
</head>
<body>
{{{body}}}

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>

</body>
</html>

jquery 脚本在我的 {{body}} 之后加载。

这是我的主页模板:

<p>This is my home page</p>

<script type="application/javascript">
$(function() {
alert( "ready!" );
});
</script>

如您所见,我尝试在最后加载脚本。但不幸的是,它仍然在 jquery 脚本之前,所以我的脚本永远不会被调用。我的问题是是否有像我在 this question for jade template 中所做的那样的方法(最后加载我自己的脚本)?谢谢

最佳答案

我最终通过使用部分找到了解决方案。这是我的 app.js:

var exphbs = require('express-handlebars');

var app = express(),
hbs = exphbs.create({

defaultLayout:'main',
helpers: {
section: function(name, options){
if(!this._sections) this._sections = {};
this._sections[name] = options.fn(this);
return null;
}
}
});

app.set('views', path.join(__dirname, 'views'));
app.engine('handlebars', hbs.engine);
app.set('view engine', 'handlebars');

我的布局文件ma​​in.handlebars:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>{{title}}</title>
<link rel="stylesheet" href="/stylesheets/style.css">
{{{_sections.style}}}
</head>
<body>
{{{body}}}

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
{{{_sections.script}}}
</body>
</html>

我的模板文件home.handlebars:

<p>This is my home page</p>

{{#section 'script'}}

<script type="application/javascript">
$(function() {
alert( "I'm ready!" );
});
</script>

{{/section}}

一切都和我在我的 Jade 模板里做的一模一样。唯一的额外工作是我必须在我的 app.js 文件中使用 helpers 函数。

关于jquery - 如何确保 javascript 位于 express-handlebars 模板中代码的底部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25300017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com