Frage

Ich bin den Aufbau einer Web-Anwendung mit Grails. Ich beschloss, Dojo zu verwenden, und ich fügte im main.gsp ein Dojo Fisheye-Menü für den Beginn, so dass es auf allen Seiten Anwendung zur Verfügung stehen würde. Es funktioniert gut für die (home) index.gsp Seite, aber sobald ich ein anderes wählen, das Fisheye-Menü disapears. Wenn ich wieder nach Hause gehen, ist es dort. Ich überarbeitete meine Einstellungen und alles sieht mir ok. Ich bin mit nichts Besonderes, nur einfache Dinge. Mir fehlt etwas, aber nicht in der Lage, es herauszufinden.

Hier ist der Code in meinem main.gsp für Klarheit vereinfacht:

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

Und hier ist die _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>

Alle Seiten, einschließlich der index.gsp haben die folgenden:

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

Bitte beachten Sie, dass die Verwendung von Templates (_fisheyebar) nicht die Ursache ist, habe ich den Code direkt in dem Haupt- und hatte die gleiche Wirkung. Also, was bin ich dabei?

War es hilfreich?

Lösung

Es ist in der relativen URL Dojo Standort. es ist an der Wurzel relativ also, warum der Index funktioniert und nicht auf die anderen Seiten.

mit absoluter URLs behebt das Problem.

Andere Tipps

Haben Sie versucht, Ihre Dojo Erklärung und Importe zu Ihrer Layout-Vorlage Seite zu verschieben, anstatt sie in Ihrem main.gsp setzen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top