web-dev-qa-db-fra.com

Accéder aux valeurs à l'aide de {{#each}} dans un tableau unidimensionnel

J'ai trouvé de nombreux exemples d'utilisation du {{#each}} aide à itérer sur des tableaux multidimensionnels, mais je ne sais pas comment accéder à chaque valeur dans un tableau unidimensionnel.

Par exemple, prenez ce tableau:

skills: ['Design', 'Development', 'HTML5', 'CSS', 'JavaScript'],

Comment puis-je sortir chaque élément, dans une aide comme ci-dessous?

template: Handlebars.compile(
'<div>' + 
    '{{#each skills}} {{ the_item_output }} {{/each}}' +
'</div>'
),

Que dois-je mettre à la place de {{ the_item_output }} pour voir l'article réel?

26
shrewdbeans
{{#each skills}}
  <li>{{this}}</li>
{{/each}}
54
alexdd55

Un tableau de valeurs scalaires doit utiliser la grammaire Itérateurs simples . Vous devez déclarer un #each bloc sur la propriété skills.

L'espace réservé pour chaque valeur peut être soit {{this}} ou {{.}}.

Vous devez utiliser le modèle suivant:

{{#each skills}}
    <li>{{this}}</li>
{{/each}}

Vous pouvez également utiliser #list.

{{#list skills}}
    <li>{{.}}</li>
{{/list}}

Exemple

function listToHTML(items) {
  return '<ul>' + items.map(function(item) {
    return '<li>' + item + '</li>';
  }).join('') + '</ul>';
}

Handlebars.registerHelper({
  scalar_list_raw : function(items) {
    return listToHTML(items);
  },
  
  scalar_list_safe_string: function(items) {
    return new Handlebars.SafeString(listToHTML(items));
  },
});

var data = {
  skills: [ 'Design', 'Development', 'HTML5', 'CSS', 'JavaScript' ],
};

$(function() {
  var source = $("#skills-template").html();
  var template = Handlebars.compile(source);

  $('body').append(template(data));
});
ul li {
  list-style-type: upper-roman;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.3/handlebars.min.js"></script>

<script id="skills-template" type="text/x-handlebars-template">
  <h2>Skills - [Block] Each</h2>
  <ul>
    {{#each skills}}
    <li>{{this}}</li>
    {{/each}}
  </ul>

  <h2>Skills - [Helper] SafeString</h2>
  {{scalar_list_safe_string skills}}

  <h2>Skills - [Helper] Raw HTML</h2>
  {{{scalar_list_raw skills}}}
</script>
4
Mr. Polywhirl