私のコードが機能しない理由を教えてください。 Jquery Ajaxを使用してフォームを送信するために、私はエクスプレス幅のハンドルバーを使用しています。最初のレンダリングは正しく動作しますが、2番目のレンダリングは正しく動作しませ問題は「res.render」を入れ子にすることだと思います。私はあなたが正しいと思いますエクスプレスとハンドルバーを使用してレンダリングテンプレートが残っています
app.js
var express = require('express');
var app = express();
var template = require('consolidate');
var handlebars = require('handlebars');
var bodyparser = require('body-parser');
app.use(bodyparser.urlencoded({extended: false}));
app.engine('hbs', template.handlebars);
app.set('view engine', 'hbs');
app.set('views', __dirname);
app.get('/', function(req, res) {
res.render('index', {
myName: 'John'
});
});
app.post('/', function(req, res) {
var obj = {surname: req.body.surname, age: req.body.age};
res.render('Layout.hbs', obj, function(err, html) {
if(err) {
console.log(err);
} else {
console.log(html);
res.render('index.hbs', {
content: html
})
}
}
);
});
app.listen(8080, function() {
console.log('App listening on 8080');
});
index.hbs
<div class="wrapper">
<div class="container">
<p>{{myName}}</p>
</div>
<form action="" name="form" id="form" method="post">
<input id="surname" type="text" name="surname" placeholder="surname"><br/>
<input id="age" type="text" name="age" placeholder="age"><br/>
<input type="submit">
</form>
{{{content}}}
</div>
<script type="text/javascript">
$(document).ready(function() {
$('form').on('submit', function(e) {
e.preventDefault();
var form = $(this);
var surname = form.find('#surname').val();
var age = form.find('#age').val();
$.ajax({
type: 'POST',
data: {surname: surname, age: age},
success: function(res) {
console.log('Success');
},
error: function(err) {
console.log(err);
}
});
});
});
</script>
:-)あなたの答えLayout.hbs
<div class="inner-container">
<h1>{{surname}}</h1>
<h2>{{age}}</h2>
<p>Render</p>
</div>
ことによってそれを交換してくださいなぜあなたは 'の呼び出し)(' res.renderをネストしていますか?コンテンツのレンダリングで十分です。 – jfriend00
「レイアウト」テンプレートを「インデックス」内にレンダリングする必要があります。どのように入れ子レンダリングなしでこれを実行できますか? – Dima
ハンドルバーには、メインテンプレート内に別のテンプレートを埋め込む独自のメカニズムがあります。 'res.render()'を2回コールするのではなく、そのメカニズムを使う必要があります。実際のテンプレートを表示し、達成しようとしていることをより詳細に説明すると、私たちは助けてくれる可能性が高くなります。 – jfriend00