2010-12-15 384 views
3

J'ai fait une recherche rapide dans stackoverflow .. mais je n'ai rien trouvé de plus que ce que je recherchais. J'essaie de comprendre/obtenir quelques conseils sur la façon de construire mon propre moteur de template très simple pour jQuery.Création de mon propre moteur de template JQuery personnalisé?

J'ai fondamentalement un appel AJAX standard pour obtenir du XML (oui ... démodé je sais .. et je devrai tirer ceci dans le monde de JSON peut-être). Donc, je finis avec dire quelque chose comme ce qui suit (juste une idée de réduire):

<rows> 
    <myFieldname1>some data</myFieldname1> 
    <myFieldname2>some data too</myFieldname2> 
    .. and so on ... 
</rows> 

Ainsi, pour les dossiers à une seule base, j'ai quelque chose que j'appelle « PageDataMagic » (oui, très dramatique ..) qui, en utilisant jQuery, itère à travers le XML et mappe les valeurs des nœuds xml aux éléments HTML (il y a bien sûr un peu de vérification si un élément est une case à cocher etc.) - ceci est fait par les nœuds XML appelés les fieldnames de la base de données/Tant que les ID des éléments sont nommés ainsi, cela fonctionne. Ok, sur le point ... si je veux avoir une sorte de 'template', de préférence un JS/HTML externe, comment est-ce que je pourrais cartographier dynamiquement les noms de champs et ajouter dynamiquement un template répétitif? Je suppose qu'il y a la fonction append() dans jQuery? juste je suppose essayant de lire un fichier de modèle et de créer des instances de ligne de cela ???

Est-ce que cela a du sens? Peut-être que plus le café est nécessaire ...

Toute aide bien que très apprécié ...

David.

--- EDIT ---

Oh oui, et il doit être en ce moment XML en raison d'autres contraintes .. Je sais que je pourrais convertir en JSON, et rendrait le processus plus facile sans aucun doute .. mais j'ai besoin de courir à partir de XML, même si elle doit analyser ce - bit plus lent ..

+0

Ok, donc j'ai trouvé http://stackoverflow.com/questions/2669787/how-do-templating-engines-in-javascript-work juste pour commencer .. mais est-ce que quelqu'un peut ajouter quelque chose? –

+0

Je suis confus sur deux comptes: Vous avez une liste de ressources sur la question liée qui pourrait vous aider déjà sans réinventer la roue, et votre question est un peu confuse. Qu'est-ce que tu aimerais exactement aider? Comment ajouter une nouvelle ligne de modèle au jeu d'enregistrements? – jcolebrand

+0

Oui, c'était très tôt ce matin ... vu la réponse, je ne me suis pas rendu compte ... de toute façon, je connais XSLT et le plugin JQuery officiel avec lequel Microsoft a aidé, mais je voulais vraiment comprendre 'comment' un moteur de gabarit fonctionnerait - donc principalement un exercice d'apprentissage .. –

Répondre

1

Je pensais que c'était pour quoi XSLT était? Et oui, plus de café.

+0

Darn droite .. début précoce, peu de café = pas bon. Quoi qu'il en soit, je réalise que l'utilisation de XSLT est une bonne idée, et j'ai accès à un bon processeur XSLT côté client de dhtmlx.com, mais comme je l'ai mentionné plus haut, je n'ai pas dit que je voulais l'utiliser aussi - pour comprendre comment on pourrait construire une telle fonction. –

2

Utilisez the official jQuery template plugin au lieu d'inventer le vôtre.

+0

Merci. Encore une fois, oui n'était pas tout à fait clair. Mon besoin est 1) comme un exercice d'apprentissage sur la façon de construire une telle fonction et 2) Le plugin JQuery officiel ne semble pas fonctionner à partir de XML seulement JSON ?? probablement faux, mais c'était ma compréhension? –