Estou usando a biblioteca de formulários para Node.js ( formulários ), que renderizará um formulário para mim no back-end da seguinte forma:
var signup_form = forms.create({
username: fields.string({required: true})
, password: fields.password({required: true})
, confirm: fields.password({
required: true
, validators: [validators.matchField('password')]
})
, email: fields.email()
});
var signup_form_as_html = signup_form.toHTML();
A linha final var signup_var signup_form_as_html = signup_form.toHTML();
cria um bloco de HTML que se parece com:
<div class="field required"><label for="id_username">Username</label><input type="text" name="username" id="id_username" /></div><div class="field required"><label for="id_password">Password</label><input type="password" name="password" id="id_password" /></div><div class="field required"><label for="id_confirm">Confirm</label><input type="password" name="confirm" id="id_confirm" /></div><div class="field"><label for="id_email">Email</label><input type="text" name="email" id="id_email" /></div>
Basicamente, apenas uma longa sequência de HTML. Em seguida, tento renderizá-lo usando EJS e Express usando o seguinte código:
res.render('signup.ejs', {
session: loginStatus(req)
, form: signup_form_as_html
});
Mas, na renderização, o HTML é simplesmente a string que postei acima, em vez do HTML real (e, portanto, um formulário como eu quero). Existe alguma maneira de fazer com que essa string seja renderizada como HTML real usando EJS? Ou terei que usar algo como Jade?