Comment obtenir une variable par nom dans un mixin
-
29-10-2019 - |
Question
Formulaire (partiel):
include ../mixins/form-helpers
form(action='/users/create', method='post')
div.fields
fieldset
mixin field('text', 'email', 'Email')
mixin field('password', 'password', 'Password')
mixin field('password', 'password_confirmation', 'Confirm password')
mixin field('username', 'username', 'Username')
mixin submit('Register')
Le mélange de terrain ressemble à ceci:
mixin field(type, n, label)
.clearfix
label(for='#{n}') #{label}
.input
input#password.span8(name=n, type=type, value=user[name])
Manette:
(req, res)->
user =
email: 'someemail'
password: ''
password_confirmation: ''
username: 'someusername'
res.render 'users/new', user:user
J'essaie de rendre le mélange de terrain un peu plus générique pour que je puisse le réutiliser. Je cherche un moyen de remplacer "l'utilisateur [nom] par "générique [nom]
La solution
Vous pouvez définir une variable à l'intérieur d'un modèle en jade avec un tableau de bord (-)
Donc, si vous utilisez un [nom] générique, vous pouvez effectuer ce qui suit dans votre formulaire:
-var generic = user;
include ../mixins/form-helpers
form(action='/users/create', method='post')
div.fields
fieldset
mixin field('text', 'email', 'Email')
mixin field('password', 'password', 'Password')
mixin field('password', 'password_confirmation', 'Confirm password')
mixin field('username', 'username', 'Username')
mixin submit('Register')
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow