рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдФрд░ DOM рдЯреНрд░реА рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдХреЗ рдЧрддрд┐рд╢реАрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдмрд╕рд╛рдЗрдЯреЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реА рд╣реИрдВред рдпрджрд┐ рдЖрдк рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рджреГрд╢реНрдп / рдирд┐рдпрдВрддреНрд░рдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреЛрдб рдХреНрд▓реАрдирд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред

рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:

<script src="js/handlebars.js"></script> 


рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕ JSON рдбреЗрдЯрд╛ рд╕реЗ HTML рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕ рдкреИрдЯрд░реНрди рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдЯреЗрдХреНрд╕реНрдЯ / рдПрдХреНрд╕-рд╣реИрдВрдбрд▓-рдЯреЗрдореНрдкреНрд▓реЗрдЯ , рд╕рд╛рде рд╣реА рдПрдХ рдЖрдИрдбреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдПрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдХрдЕрдк рдЬреЛ рдПрдХ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ рдФрд░ HTML рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

 <ul class="updates"> <script id="template" type="text/x-handlebars-template"> <li> <h2>{{name}}</h2> </li> </script> </ul> 

рдирд╛рдо JSON рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ {{name}} рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

 var data = { name : 'John Doe' }, 


рд╣рдордиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг JSON рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛, рдЬрд┐рд╕рдореЗрдВ 'рдЬреЙрди рдбреЛ' рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо HTML рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ HTML рдореЗрдВ .updates рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ , рдЬреЛ JSON рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ:

 var template = Handlebars.compile( $('#template').html() ); $('.updates').append( template(data) ); 


рдЖрдЗрдП JSON рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЕрдзрд┐рдХ рдЧреБрдг рдЬреЛрдбрд╝рдХрд░ рдХрд╛рд░реНрдп рдХреЛ рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рдХрд░реЗрдВ:

  var data = { name: 'Jane Doe', update: 'Just Made my Breakfaast', from: 'Web', location: 'Canada' }, 


рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ:

 <li> <h2>{{name}}</h2> <p>{{{update}}}</p> <span> Sent From: {{from}} - In: {{location}} </span> </li> 


рдорд╣рд╛рди, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ JSON рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

 var data = { updates: [ { name: 'Jane Doe', update: 'Just Made my Breakfaast', from: 'Web', location: 'Canada' }, { name: 'John Doe', update: 'What is going on with the weather?', from: 'Phone', } ]}, 


рдЕрдм рд╕рд░рдгреА рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд╕рд╛рде HTML рдХреЛ рд▓рдкреЗрдЯрдирд╛ рд╣реЛрдЧрд╛:

 {{#each updates}} <li> <h2>{{name}}</h2> <p>{{{update}}}</p> <span> Sent From: {{from}} - In: {{location}} </span> </li> {{/each}} 


рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЬреЙрди рдбреЛ рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 {{#each updates}} <li> <h2>{{name}}</h2> <p>{{{update}}}</p> <span> Sent From: {{from}} {{#if location}} - In: {{location}}</span> {{/if}} </span> </li> {{/each}} 


рдЖрдк рдпрд╣ рднреА рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдХреЛрдИ рд╕реНрдерд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ:

 {{#if location}} - In: {{location}}</span> {{else}} - Location not provided by the user</span> {{/if}} 


рдирд┐рд╖реНрдХрд░реНрд╖

рд▓реЗрдЦ рдореЗрдВ рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдХрднреА-рдмрджрд▓рддреЗ рдбреЗрдЯрд╛ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рдмрд╛рд░ рдПрдХ рдмрдврд╝рд┐рдпрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдЕрддреНрдпрдзрд┐рдХ tryhandlebarsjs.com рдкрд░ рдЬрд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред

рдпрд╣ рд▓реЗрдЦ рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИред

Source: https://habr.com/ru/post/In218743/


All Articles