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
Libérer: 2024-12-02 16:05:17
original
375 Les gens l'ont consulté

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);
Copier après la connexion

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);
Copier après la connexion

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();
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal