рдХреНрдпрд╛ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдХреБрдВрдЬреА/рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ?
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
var values = {
'single': 'Single bed',
'double': 'Double bed',
'twin': 'Twin beds'
};
рд╕рдорддреБрд▓реНрдп рд╣реИрдВрдбрд▓рдмрд╛рд░.рдЬреЗрдПрд╕ рдХреЛрдб:
<select name="bed_type">
{{#values}}
<option value="{{@key}}">{{this}}</option>
{{/values}}
</select>
рдореБрдЭреЗ рдЗрд╕реЗ рдореВрдВрдЫреЛрдВ рдХреЗ рд╕рд╛рде рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛
рдзрдиреНрдпрд╡рд╛рджред
рд╣рд╛рдп @chlab!
рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕реАрдзреЗ рд░реЗрдВрдбрд░рд░ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдЗрд╕реЗ view
рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╛ рдПрдХ рдХрд╕реНрдЯрдо рд╕рд╣рд╛рдпрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЗрди рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдереНрд░реЗрдбреНрд╕ рдкрд░ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ:
http://stackoverflow.com/questions/9058774/handlebars-mustache-is-there-a-built-in-way-to-loop-through-the-properties-of
http://stackoverflow.com/questions/9981907/how-to-iterate-over-a-hash-in-mustache-js
рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдЪреАрдпрд░реНрд╕!
рдзрдиреНрдпрд╡рд╛рдж @dasilvacontinред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдЕрдЬреАрдм рддрд░реАрдХрд╛ рд▓рдЧрддрд╛ рд╣реИ, рдирд╣реАрдВ? рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдХреНрдпрд╛ рддрд░реНрдХ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХрд╛ рддрд░реАрдХрд╛ рдЬреНрдпрд╛рджрд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛?
рдЪрд┐рдпрд░реНрд╕
@chlab рдпрд╣ рдореВрдВрдЫреЛрдВ рдХрд╛ рдПрдХ рдореМрд▓рд┐рдХ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИред рд╕рднреА рддрд░реНрдХреЛрдВ рдХреЛ рдПрдХ рджреГрд╢реНрдп рдореЗрдВ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЕрдзрд┐рдХ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдереЛрдбрд╝рд╛ рд╕рд╛ рддрд░реНрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдлрд┐рд╕рд▓рди рдврд▓рд╛рди рд╣реИ рдХрд┐ рдореВрдВрдЫреЗрдВ рдЖрдкрдХреЛ рдиреАрдЪреЗ рдЬрд╛рдиреЗ рднреА рдирд╣реАрдВ рджреЗрддреА рд╣реИрдВ :)
рдХрд╛рдлреА рдЙрдЪрд┐рддред рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рдЬрд┐рд╕реЗ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореВрдВрдЫреЛрдВ рдХреЛ рднреА рдЕрдзрд┐рдХ рд░рд╛рдп рджреЗрддрд╛ рд╣реИ, рдореИрдВ рд╣рдореЗрд╢рд╛ рдореВрдВрдЫ рдХреЛ рдЦреБрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд░реВрдкрд╛рдВрддрд░рдг рдЪрд░рдг рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ ...
рдХреНрдпрд╛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд╕реНрддреБ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореВрдВрдЫреЛрдВ рдХреЗ рджреГрд╢реНрдп рдореЗрдВ рддрд░реНрдХ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд░рд╣рд╛ рд╣реИ? рдореЗрд░рд╛ рддрд░реНрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдореИрдВ рддрд░реНрдХ-рд░рд╣рд┐рдд рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкреНрд░рд╢рдВрд╕рдХ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдкреБрди: рд╕рдХреНрд░рд┐рдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рдУрдкреА рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЕрдЬреАрдм рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░рд╛ рдбреЗрдЯрд╛ рд╣реЛ:
"attr": {
"class": "foo",
"href": "/somewhere"
}
рд▓реЗрдХрд┐рди рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
"attr": [
{
"key": "class",
"value": "foo"
},
{
"key": "href",
"value": "/somewhere"
}
]
рд╕реМрдВрдкрдиреЗ рдХреЗ рд▓рд┐рдП:
<a{{#attr}} {{ key }}="{{ value }}"{{/attr}}></a>
рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ,
рдореИрдВ рдПрдХ рдЕрдирд╛рдо рд╕реВрдЪреА рдХреЛ рдХреИрд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдореИрдВрдиреЗ {{#.}} рдФрд░ {{/.}} рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рд╡рд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж
рдПрдХ рдЕрдирд╛рдо рд╕реВрдЪреА рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
let facts = doc.data();
res.render('index', {facts});
<ul>
{{#each facts}}
<li>Key: {{@key}} Value = {{this}}</li>
{{/each}}
</ul>
рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╣реИ?
рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ рдХреЗ рд╕рд╛рде рд╡рд╕реНрддреБрдУрдВ рдХреА рдЕрдирд╛рдо рд╕реВрдЪреА рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ?
рдХреГрдкрдпрд╛ рд╕реБрдЭрд╛рдИ рдЧрдИ рд╡рд╕реНрддреБ, var values = { 'single': 'Single bed', ...}
рдФрд░ рдкреНрд░рд╢реНрди рдХреЗ рд╕реБрдЭрд╛рдП рдЧрдП рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдПрдВред
рдкреБрдирд╢реНрдЪ: @ prashantcs8 рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИ? рдХрд╛рдо рдирд╣реАрдВ рдХрд░ред
@chlab рд╣рдо 2018 рдореЗрдВ рд╣реИрдВ ... рдЕрдирд╛рдо рд╕рдВрджрд░реНрднреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрдВрдЫреЛрдВ рдореЗрдВ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ?
@baseten , рдпреЛрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ "рд▓реЗрдХрд┐рди рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП" рдКрдкрд░ , рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдбреЗрдЯрд╛-рд╕рдВрд░рдЪрдирд╛ рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд╕реВрд░рдд рд╣реИ ...
рдпрд╣ рдПрдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ res.render('index', objs2list(obj))
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рд╢рд╛рдпрдж рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрдВрдЫ рд╕рд╣рд╛рдпрдХ рд╡рд┐рдзрд┐ рдореМрдЬреВрдж рд╣реИ,
function objs2list(p) {
r = [];
for (var key in p) if (p.hasOwnProperty(key)) {
r.push({"@key":key,"@val":p[key]});
}
return r;
}
рдореМрдЬреВрдж?
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдХреНрдпрд╛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд╕реНрддреБ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореВрдВрдЫреЛрдВ рдХреЗ рджреГрд╢реНрдп рдореЗрдВ рддрд░реНрдХ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд░рд╣рд╛ рд╣реИ? рдореЗрд░рд╛ рддрд░реНрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдореИрдВ рддрд░реНрдХ-рд░рд╣рд┐рдд рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкреНрд░рд╢рдВрд╕рдХ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдкреБрди: рд╕рдХреНрд░рд┐рдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рдУрдкреА рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЕрдЬреАрдм рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░рд╛ рдбреЗрдЯрд╛ рд╣реЛ:
рд▓реЗрдХрд┐рди рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
рд╕реМрдВрдкрдиреЗ рдХреЗ рд▓рд┐рдП: