Underscore.js modèle de rendu
J'ai cet exemple de code pour rendre simple unescapedHTML à l'aide de souligner la création de modèles.
var template = $(this.el).html(_.template(this.template, {'data': '<script>'}));
$(this.parent).append(template);
Mais quand il essaie de le rendre, il a provoqué une erreur:
Uncaught TypeError: Object [object object] n'a pas de méthode "remplace"
Quelqu'un peut-il svp m'éclairer ce qui est la cause et comment le résoudre? Car, dans le trait de soulignement de la documentation:
var template = _.template("<b><%- value %></b>");
template({value : '<script>'});
=> "<b><script></b>"
Merci d'avance.
Qu'est-ce que
Oui, son objet jQuery. Aussi, quand j'avais essayé de l'utiliser cet exemple de trait de soulignement de la documentation, il a également jeter erreur: 'valeur' n'est pas défini, bien que je l'avais mis avec de la ficelle.
this.template
? Une chaîne ou peut-être un DOM ou un objet jQuery?Oui, son objet jQuery. Aussi, quand j'avais essayé de l'utiliser cet exemple de trait de soulignement de la documentation, il a également jeter erreur: 'valeur' n'est pas défini, bien que je l'avais mis avec de la ficelle.
OriginalL'auteur fadzril | 2011-11-19
Vous devez vous connecter pour publier un commentaire.
De la beaux-manuel:
Le premier argument pour
_.template
est censé être une chaîne de caractères, pas un objet jQuery. Une partie de la transformation interne pour_.template
appelle laString#remplacez
fonction et c'est là votre erreur vient de. Vous pouvez utiliser ceci à la place:Démo: http://jsfiddle.net/ambiguous/wPu6G/
L'exemple que vous donnez fonctionne très bien:
Donc je ne sais pas où le "valeur" n'est pas défini d'erreur que vous mentionnez dans votre commentaire pourrait être à venir à partir de.
OriginalL'auteur mu is too short
Je viens de toucher la même erreur lors du nœud en cours d'exécution sur le serveur. Si vous lisez le fichier de modèle de disque et vous ne spécifiez pas l'encodage puis node.js sera de retour un tampon. L'erreur est fondamentalement la même, parce que le trait de Soulignement attend une chaîne. Assurez-vous de spécifier un encodage de sorte que vous passez une chaîne de caractère de Soulignement.
cela produira l'erreur.
et c'est bon.
OriginalL'auteur Michael Connor