2009-09-28 8 views
0

Je construis une application web en utilisant Grails. J'ai décidé d'utiliser le dojo et j'ai ajouté un menu dojo fisheye pour commencer dans le main.gsp afin qu'il soit disponible sur toutes les pages de l'application. Cela fonctionne bien pour la page (home) index.gsp, mais une fois que j'en sélectionne une autre, le menu fisheye disparaît. Si je rentre à la maison c'est là. J'ai révisé mes paramètres et tout me semble correct. Je n'utilise rien de sophistiqué, juste des choses simples. Il me manque quelque chose mais je n'arrive pas à le comprendre.Dojo Fisheye dans l'application Grails

est ici le code dans mon main.gsp simplifié pour plus de clarté:

<html> 
<head> 

    ... 

    <g:layoutHead /> 

    <!-- use dojo library ... this has not effect at all --> 
    <g:javascript library="dojotk"/>  

    <!-- Load Dojo --> 
    <script type="text/javascript" src="js/dojotk/dojo/dojo.js" 
    djConfig="parseOnLoad:true, isDebug:false"></script> 

    <!-- need fisheye --> 
    <g:javascript type="text/javascript"> 
     dojo.require("dojox.widget.FisheyeList"); 
    </g:javascript> 

    <!-- required css for dojo fisheye --> 
    <style type="text/css">@import "js/dojotk/dojox/widget/FisheyeList/FisheyeList.css";</style>  

</head> 
<body > 
     ... 
    <!-- fisheye bar --> 
    <div id="fisheyebar"><g:render template="/common/fisheyebar"/></div> 

    <g:layoutBody /> 
</body> 

Et voici le _fisheyebar.gsp

<g:javascript> 
    function load_app(target){ 
    window.location.href=target 
} 
</g:javascript> 
    <center > 
     <div class="outerbar"> 
      <div dojoType="dojox.widget.FisheyeList" 
        itemWidth="50" itemHeight="50" 
        itemMaxWidth="200" itemMaxHeight="200" 
        orientation="horizontal" 
        effectUnits="2" 
        itemPadding="10" 
        attachEdge="top" 
        labelEdge="bottom" 

        > 
    <div dojoType="dojox.widget.FisheyeListItem" 
      onClick= "load_app('${createLinkTo(dir:'/something')}');" 
      iconsrc="images/icon_something.png" caption="Web Browser"> 
    </div> 
     ..... 
    </div> 
</div> <!-- outbar --> 
</center> 

Toutes les pages, y compris le index.gsp ont les éléments suivants:

<head> 
<title>some titel</title> 
<meta name="layout" content="main" /> 
</head> 

S'il vous plaît ne pas que l'utilisation du modèle (_fisheyebar) n'est pas la cause, j'ai mis le code directement dans le principal et a eu le même effet. Alors qu'est-ce qui me manque?

Répondre

0

c'est dans l'url relative à l'emplacement du dojo. c'est relatif à la racine, c'est pourquoi l'index fonctionne et pas les autres pages. L'utilisation d'URL absolues résout le problème.

0

Avez-vous essayé de déplacer votre déclaration de dojo et les importations vers votre page de modèle de disposition au lieu de la placer dans votre main.gsp?

+0

Non, je ne l'ai pas fait. Je n'avais pas ce besoin. Je viens de mettre des URL absolues au lieu de celles relatives. J'ai utilisé Firebug pour regarder ce qui se passait et puis j'ai vu les mauvais appels d'URL. –