Maison  >  Article  >  interface Web  >  Pourquoi est-ce que je reçois une « Erreur de modèle de soulignement : variable non définie » dans mon code Backbone.js ?

Pourquoi est-ce que je reçois une « Erreur de modèle de soulignement : variable non définie » dans mon code Backbone.js ?

DDD
DDDoriginal
2024-11-13 06:11:02847parcourir

Why am I getting an

Erreur du modèle de soulignement : "Variable non définie"

Dans l'exemple fourni pour Backbone.js, une erreur se produit lors de l'utilisation du trait de soulignement modèle. Le message d'erreur indique "Variable non définie". Pour comprendre le problème et le résoudre, examinons l'utilisation des modèles Underscore.

Dans les anciennes versions de Underscore (avant la version 1.7.0), le deuxième argument de la fonction _.template était utilisé pour fournir données pour le modèle. Cela permettait une syntaxe concise dans laquelle le modèle et les données pouvaient être spécifiés sur une seule ligne.

Cependant, à partir de la version 1.7.0 de Underscore, le deuxième argument de _.template a été réutilisé pour s'adapter aux options du modèle. Cela signifie que la méthode précédente consistant à spécifier les données directement dans le deuxième argument n'est plus valide.

Pour résoudre le problème, il est nécessaire de compiler le modèle Underscore à l'aide de la fonction _.template puis d'exécuter la fonction résultante. pour obtenir le modèle rempli. La syntaxe correcte est :

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

Dans le cas de l'exemple Backbone.js fourni, le code suivant résoudrait l'erreur :

render: function () {
  var data = { lat: -27, lon: 153 };
  var tmpl = _.template('<%= lat %> <%= lon %>');
  this.$el.html(tmpl(data));
  return this;
}

En compilant d'abord le modèle, puis en l'exécutant avec les données spécifiées, l'erreur "Variable non définie" sera éliminée, permettant au modèle de restituer le contenu correct.

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