Maison >interface Web >js tutoriel >Pourquoi est-ce que j'obtiens une erreur « Variable de modèle de soulignement non définie » dans Backbone.js ?

Pourquoi est-ce que j'obtiens une erreur « Variable de modèle de soulignement non définie » dans Backbone.js ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-02 16:05:17376parcourir

Why Am I Getting an

Erreur de variable de modèle de soulignement non définie résolue

Dans Backbone.js, l'utilisation de modèles de soulignement pour générer dynamiquement du HTML est courante, mais des extraits de code antérieurs peuvent rencontrer une « variable non définie " erreurs. Cet article explique pourquoi cela se produit et comment le résoudre.

Le problème

Dans le passé, les modèles de soulignement pouvaient être analysés et remplis en une seule étape en utilisant la syntaxe suivante :

var html = _.template(template_string, data);

Le changement

Cependant, les versions Underscore 1.7.0 et supérieures ont introduit le concept d'options de modèle, qui doivent être explicitement fournies comme deuxième argument de _.template(). Ces options permettent un contrôle précis du comportement du modèle.

La solution

Pour compiler et exécuter correctement les modèles de soulignement, suivez ces étapes :

  1. Compilez le modèle using _.template(template_string).
  2. Exécutez la fonction renvoyée avec les données pour remplir le modèle.

Cela peut être représenté comme :

var tmpl = _.template(template_string);
var html = tmpl(data);

Exemple

Considérez l'extrait de code suivant, qui montre comment implémenter des modèles avec Airbnb Les Locations de vacances de ensemble de données :

var V = Backbone.View.extend({
  el: 'body',
  render: function() {
    var data = [
      {
        id: 1,
        lat: -27,
        lon: 153
      },
      {
        id: 2,
        lat: -33,
        lon: 151
      }
    ];
    var tmpl = _.template('<li><%= id %>. <%= lat %>, <%= lon %></li>');
    var html = data.map(tmpl).join('');
    this.$el.html(html);
    return this;
  }
});

var v = new V();

v.render();

En suivant la syntaxe de modèle correcte, vous pouvez utiliser efficacement les modèles Underscore dans vos applications Backbone.js.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn