2009-08-02 3 views
0

Actuellement, j'ai 2 modèles différents pour afficher un produit: 1 pour la navigation générale, 1 pour les résultats de recherche. C'est embêtant, je dois gérer 2 templates pour ce qui est plus ou moins la même mise en page.Modèles de vue redondants: 1 pour les recherches de surlignage, 1 pour la navigation

La raison, les résultats de recherche sont en surbrillance. Mon modèle fort ressemble à ceci, à peu près:

 

for each result 
    <h2> 
    if search has name 
    <em> result.name </em> 
    else 
    result.name 
    end 
    </h2> 

    if search has price 
    <em> result.price </em> 
    else 
    ... 
    end 
... 
end 

Je préfère ne pas CREARE une variable de recherche factice (s) juste pour utiliser ce point de vue avec la page du produit. J'ai envisagé de créer une classe "display" qui serait pré-empaquetée avec les ems appropriés, mais en réalité c'est plus pareil, car mes pages de navigation de produits doivent alors se conformer inutilement à cette classe.

Je suppose que l'argument peut être fait qu'ils sont 2 vues différentes servant 2 objectifs différents, mais le fait que je dois gérer 2 fichiers différents du même HTML ne me convient pas.

Est-ce que quelqu'un a une solution et/ou s'en occupe?

Répondre

0

Il peut y avoir différentes approches pour y parvenir, pour une solution spécifique, veuillez mentionner les frameworks/plateformes avec lesquels vous travaillez.

Je peux suggérer ce qui suit: a) Diviser la disposition commune et la disposition unique dans différents fichiers et les fusionner si nécessaire. Ainsi, vous pouvez avoir quelque chose comme - header.html index.html footer.html search.html

appels maintenant index.html search.html au besoin. Approche assez évolutive.

b) Javascript - Vous pouvez générer dynamiquement des éléments dom sur les pages de recherche en utilisant JS.

+0

Oui, j'ai divisé les dispositions communes, le point est qu'il y a beaucoup de comminality entre les 2 dispositions de produit employées par la recherche et la vue, pourtant je ne peux pas trouver un moyen de les fusionner en raison de la surbrillance. JavaScript ne devrait pas être nécessaire simplement pour mettre en évidence les termes de recherche. J'utilise Rails. –

Questions connexes