Question

Je construis une application Web en utilisant Grails. J'ai décidé d'utiliser dojo et j'ai ajouté un dojo menu fisheye pour begining dans le main.gsp il sera disponible sur toutes les pages de l'application. Il fonctionne très bien pour la page index.gsp (à domicile), mais une fois que je sélectionne une autre, les disapears de menu fisheye. Si je retourne à la maison, il est là. Je mes réglages et révisé tout semble ok pour moi. Je ne sers quoi que ce soit de fantaisie, juste des choses simples. Il me manque quelque chose, mais pas en mesure de comprendre.

Voici 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 pas que l'utilisation du modèle (_fisheyebar) n'est pas la cause, je mets le code directement dans la principale et a eu le même effet. Alors qu'est-ce que je manque?

Était-ce utile?

La solution

il est dans l'URL par rapport à l'emplacement de dojo. il est relatif à la racine c'est pourquoi l'indice fonctionne et non pas les autres pages.

en utilisant des URL absolues résout le problème.

Autres conseils

Avez-vous essayé de déplacer votre déclaration de dojo et les importations à votre page de modèle de mise en page au lieu de le mettre dans votre main.gsp?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top