est-il possible d'avoir une étiquette de modèle JavaScript imbriquée, par exemple lorsque le modèle "Produit" est évalué, le modèle de fonctionnalité est maintenant disponible en tant que modèle que je peux appeler quand je suis prêt . P> Lorsque j'essaie cette méthode dans mon navigateur, je remarque que certains éléments apparaissent dans le mauvais ordre comme si j'oublie une balise de fin quelque part. p> Cependant, lorsque je supprime le modèle imbriqué ( Caractéristique) C'est tout bien ... P> se demander s'il y avait un moyen approprié de y parvenir. P> p>
7 Réponses :
conviennent d'utiliser jQuery? Si tel est le cas, cela est très possible (et même osez-moi dire, commun): p>
http: //blog.reybango .COM / 2010/07/12 / JQuery-Javascript-Modèles de tutoriel / p>
Ce message de blog montre qu'un modèle étant appelé d'un autre gabarit. Pas une définition de modèle imbriquée dans une autre définition de modèle, comme indiqué dans l'OP.
@Mike, c'est comme ça que vous nichez des modèles.
@Kon, vous avez une mauvaise utilisation du terme "nidification". De TheFreeDictionary.com/Snesting "5. Informatique Un ensemble de données contenues séquentiellement dans une autre."
@Mike, c'est exactement ce que le résultat final est. BTW, je n'ai pas eu l'auteur de l'article lié, je suppose donc que je ne suis pas le seul "abusant" du terme.
@Kon, d'accord. Vous et l'auteur de ce blog Post devraient tous deux utiliser le terme "appel" ou "rendu" au lieu de "nid" utilisé pour le confinement textuel dans le code source, généralement impliquant que la portée lexicale du conteneur est utilisée. Ni l'exemple de code dans OP ni que dans le blog Publier montrent le confinement textuel ou l'héritage de la portée - seule une relation d'appel.
Oui, je suppose que tout le monde a tort et que vous avez raison. API.JQUERY.COM/JQUERY.TEMPLATE Stephenwalther.com/blog/archive/2010/11/30/... a >
@Kon, sur cette question, oui. Les termes sont souvent mal utilisés de manière informelle et le terme «nidification» a une signification bien convenue dans la littérature publiée sur la théorie des langues de programmation. Non seulement vous l'abusez, mais votre réponse ne répond pas à l'exemple de l'OP. Je ne sais vraiment pas pourquoi vous plaidez cela.
@Mike, vous choisissez quelque chose de très insignifiant pour aucune raison de bonne raison. Renegare a un problème simple - comment montrer une liste de fonctionnalités dans une liste de produits - qui imite une liste d'une autre. La solution simple consiste donc à appeler un modèle d'un modèle - c'est ce qui est communément appelé nid de nidification. Que vous aimiez son utilisation / mauvaise utilisation ou non, c'est ce dont il est appelé. Donc, si vous n'allez pas aider le point de vue avec le problème, passez-vous, passez à autre chose, allez choisir un argument sans signification avec quelqu'un d'autre maintenant.
Relire la question à la fin - "errant s'il y avait une manière appropriée pour y parvenir." Comment ma réponse ne peut-elle pas aider à résoudre ce problème?
@Kon, votre suggestion est donc d'utiliser un appel dans un modèle de niveau supérieur distinct pour obtenir ce qu'il apparaît que l'opération tente d'atteindre. Assez juste. Je suis toujours en désaccord avec votre usage, mais voyez maintenant comment votre réponse est pertinente. Merci d'avoir participé à des commentaires.
@Kon, et le peu que je manquais, c'est que l'auteur n'a pas besoin de la relation lexicale de la nicheur implique parce que {{tmpl}} code> transfère l'objet de données si aucune nouvelle donnée n'est spécifiée.
Il n'y a pas d'autre moyen de le faire. Les modèles de niveau supérieur sont les seuls types de modèles que vous pouvez avoir dans le balisage HTML.
Vous ne pouvez pas nidifier par exemple Le point de vue du navigateur: p> MAINTENANT, si vous utilisez un serveur Server Strong> Moteur-Modèle de quelque nature que ce soit remplacer em> ces balises de script avec balise, puis envoyez le balisage mis à jour sur le navigateur, puis il appartient au moteur de modèles si elle prend en charge la nidification. Les navigateurs ne le font pas. P> p> script code> tags. Le mode CODE> Script code> Tags fonctionne, le navigateur lit l'étiquette d'ouverture, puis commence à construire une chaîne du code qui y figurait sans interpréter ce code. Il cesse de faire cela la première fois qu'il voit la séquence exacte
<< / code>
/ code>
s code>
c code>
r Code>
i code>
p code>
t code>
> code>. Le navigateur s'arrêtera toujours à la première de ceux qu'il trouve, et il sera crucialement ignore em> toute séquence d'étiquette em>, comme
<< / code>
s code>
c code>
r code>
i code>
p code>
t code >
> code>. En effet, le navigateur n'analyse pas le code de script, ce n'est pas son travail. C'est une séparation des préoccupations. (
script code> Les balises ne devraient probablement pas être des balises du tout, mais plutôt quelque chose de plus comme un
CDATA code> structure. Mais ils sont ce que nous avons.)
Essayez ceci:
document.getElementById("Product").text.replace(/(?:^\s*<!--\s*)|(?:\s*-->\s*$)/g, "");
Parfois, je pense que je veux des balises de script imbriquées pour des modèles, mais c'est ce que vous devez faire à la place:
script 1 p> script 2 p> <script id="Product_Features" type="text/html">
<div class="feature">
</div>
</script>
Vous pouvez utiliser
Quel moteur de modèles utilisez-vous? Templing comme celui-ci n'est pas pris en charge hors de la case par navigateur. Le contenu d'un "code> script code> est code de script i>, pas de balisage html.
Oui, c'est possible dans xhtml