web-dev-qa-db-fra.com

Appel de la fonction Javascript depuis le guidon

Comment puis-je appeler une fonction JavaScript depuis un script de guidon? Raison:

Je n'ai pas pu briser le {{#each}} depuis l'intérieur du guidon. Je dois donc le passer à JavaScript pour faire la logique.

23
vengets

Vous pouvez le faire avec des aides;

Handlebars.registerHelper("printItems", function(items) {
  var html = "<ul>";
  items.forEach(function(entry) {
    html += "<li>" + entry + "</li>";
  });
  html += "</ul>";
  return html;
});

et dans votre modèle de guidon;

{{printItems items}}

Le code ci-dessus mettra vos articles dans la liste.

Pour plus de détails, reportez-vous à ici . Aller à la section des aides

41
Hüseyin BABAL

Le guidon est un langage tentant minimal pour JavaScript et en tant que tel, il ne vous permettra pas d'exécuter du code arbitraire à partir d'un modèle. Le guidon vous fournit cependant des aides vous permettant d'exécuter du code prédéfini sur votre modèle. Ceux intégrés sont: each, unless, if et else.

Vous pouvez créer vos propres assistants avec le Handlebars.registerHelper méthode. Voici un exemple simple qui formate un numéro de téléphone. Tant que vous enregistrez l'assistant avant de l'appeler, vous devriez pouvoir utiliser {{formatPhoneNumber phoneNumber}} n'importe où dans votre code.

Handlebars.registerHelper("formatPhoneNumber", function(phoneNumber) {
  phoneNumber = phoneNumber.toString();
  return "(" + phoneNumber.substr(0,3) + ") " + 
    phoneNumber.substr(3,3) + "-" + 
    phoneNumber.substr(6,4);
});

Remarque: Bien qu'il puisse être techniquement possible d'exécuter du code sans rendu à partir d'un assistant, cela est considéré comme une mauvaise pratique et doit être évité si possible.

5
Baer

Pour gérer les manipulations de données dans le modèle de guidon, vous devez ajouter l'assistant et l'appeler dans le modèle.

En savoir plus ici ...

http://blog.teamtreehouse.com/handlebars-js-part-2-partials-and-helpers

1
user3270303