Handlebars.js: рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЪрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рдорд╛рд░реНрдЪ 2013  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: handlebars-lang/handlebars.js

рдХреНрдпрд╛ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рднреАрддрд░ рдПрдХ рдЪрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рдмрд╛рд╣рд░ рд╕реЗ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ?

рдЙрджрд╛рд╣рд░рдг:
рдореИрдВ рдПрдХ рдЯреЗрдмрд▓ рдЖрдЙрдЯрдкреБрдЯ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди 1 рдХреЙрд▓рдо рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ, рдбреЗрдЯрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (рдлрд╝реАрд▓реНрдб []ред рдлрд╝реАрд▓реНрдб 2) рдореМрдЬреВрдж рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЗрд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдЬрд╛рдВрдЪреЗрдВ?

<table>
  <thead>
    <tr>
      <th>Head 1</th>
      <th>Head 2 (optional)</th>
      <th>Head 3</th>
    </tr>
  </thead>
{{#each fields}}
  <tr>
    <td>{{{field1}}}</td>
    {{#if field2}}<td>{{{filed2}}}</td>{{/if}}
    <td>{{{field3}}}</td>
  </tr>
{{/each}}
</table>

рдлрд┐рд▓рд╣рд╛рд▓ рдореИрдВ рдПрдХ рдЕрд╕реНрдерд┐рд░ рд╕рд╣рд╛рдпрдХ рдлрд╝рдВрдХреНрд╢рди "рдЕрд╕рд╛рдЗрди" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рд╕рд╣рд╛рдпрдХ рдмрдирд╛рддрд╛ рд╣реИред

{{#each fields}}
  {{#if field2}}
    {{assign "helperVar" "<th>Head 2 (optional)</th>"}}
  {{/if}}
{{/each}}

Output with: {{{helperVar}}}

рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕реЗ #if рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

:+1:

@kpdecker рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓реВрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рдХрдерди, рдФрд░ рдХрдИ рдЕрдиреНрдп рддрд░реНрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдЪрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ _too_ рдмрд╣реБрдд рддрд░реНрдХ рд╣реИ? рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рдирд┐рд░реНрдгрдп рдХреЗ рдкреАрдЫреЗ рддрд░реНрдХ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ рдЬрдм рдЕрдиреНрдп рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рд╣рд╛рдпрдХреЛрдВ рдореЗрдВ рдПрдХ рдЪрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рддрд░реНрдХ рд╣реЛрддрд╛ рд╣реИред

рд╕рднреА 11 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ рддрд░реНрдХрд╣реАрди рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рднрд╛рд╖рд╛-рд╕реНрддрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдЕрдиреБрд╢рдВрд╕рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрдкрдХреЗ рд╕рдВрджрд░реНрдн рдирд┐рд░реНрдорд╛рдг рддрд░реНрдХ рдореЗрдВ рдЗрд╕ рдбреЗрдЯрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рднрд╛рд╖рд╛ рдореЗрдВ рдЬреЛ рднреА рд╕рдмрд╕реЗрдЯ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдмрдЬрд╛рдп рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреВрд░реНрдг рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рд╣реИред

template({
  fields: fields,
  hasField2: _.any(fields, function(item) { return item.field2; })
});

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдЧреА, рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рддрд░реНрдХ рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЙрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪрд░ рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ 2 рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕рдорд╛рди рдЖрдВрд╢рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрддрд░ рд╕реЗ рдЙрд╕ рдЖрдВрд╢рд┐рдХ рдореЗрдВ рдХреБрдЫ рдЪрд░ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЖрдВрд╢рд┐рдХ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдВред

+1

+1

:+1:

:+1:

@kpdecker рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓реВрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рдХрдерди, рдФрд░ рдХрдИ рдЕрдиреНрдп рддрд░реНрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдЪрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ _too_ рдмрд╣реБрдд рддрд░реНрдХ рд╣реИ? рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рдирд┐рд░реНрдгрдп рдХреЗ рдкреАрдЫреЗ рддрд░реНрдХ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ рдЬрдм рдЕрдиреНрдп рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рд╣рд╛рдпрдХреЛрдВ рдореЗрдВ рдПрдХ рдЪрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рддрд░реНрдХ рд╣реЛрддрд╛ рд╣реИред

+1

+1

+1

+1

рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдмреНрд▓реЙрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
http://handlebarsjs.com/block_helpers.html#block -params

рдЪреВрдВрдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн рдХреЗ рдмрд╛рд╣рд░ рдПрдХ рдЕрд▓рдЧ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рд╕рдВрджрд░реНрдн рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдкрд░ рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

NickCis picture NickCis  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ShintaroOkuda picture ShintaroOkuda  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mattkime picture mattkime  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

snimavat picture snimavat  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

amirzandi picture amirzandi  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ