Domanda

Sto costruendo un'applicazione web utilizzando Grails. Ho deciso di usare dojo e ho aggiunto un menu fisheye dojo per begining nel main.gsp quindi sarebbe disponibile su tutte le pagine dell'applicazione. Funziona bene per la (casa) page index.gsp, ma una volta che seleziono un altro, i disapears menù fisheye. Se torno a casa è lì. Ho rivisto le mie impostazioni e tutto sembra ok per me. Non sto usando niente di eccezionale, solo cose semplici. Mi manca qualcosa ma non in grado di capirlo.

Ecco il codice nel mio main.gsp semplificata per chiarezza:

<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>

E qui è il _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>

Tutte le pagine compresa l'index.gsp hanno la seguente:

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

Si prega di non che l'uso di template (_fisheyebar) non è la causa, ho messo il codice direttamente nella principale e aveva lo stesso effetto. Allora, cosa mi manca?

È stato utile?

Soluzione

è nel URL relativo alla posizione del dojo. è relativo alla radice è per questo che l'indice funziona e non le altre pagine.

utilizzando URL assoluti risolve il problema.

Altri suggerimenti

Hai provato a spostare la vostra dichiarazione dojo e le importazioni nella tua pagina modello di layout invece di metterlo nel vostro main.gsp?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top