2009-09-28 2 views
0

Я создаю веб-приложение, используя Grails. Я решил использовать додзё, и я добавил меню fjoheye для jojo для начала в main.gsp, чтобы он был доступен на всех страницах приложения. Он отлично работает для (home) index.gsp-страницы, но как только я выбираю другой, исчезает меню рыбий глаз. Если я вернусь домой, он там. Я пересмотрел свои настройки, и все выглядит нормально для меня. Я не использую ничего необычного, просто вещи. Я что-то упускаю, но не могу понять.Dojo Fisheye in Grails app

вот код в моем main.gsp упрощены для ясности:

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

А вот _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> 

Все страницы, включая в index.gsp имеют следующие:

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

Пожалуйста, не обращайте внимание на то, что использование шаблона (_fisheyebar) не является причиной, в основном и имел тот же эффект. Так что я пропущу?

ответ

0

Он находится в относительном URL-адресе местоположения додзё. это относительно корня, поэтому индекс работает, а не другие страницы.

Использование абсолютных URL-адресов устраняет проблему.

0

Вы пытались переместить объявление dojo и импортировать его на страницу шаблона макета вместо того, чтобы помещать его в свой main.gsp?

+0

Нет, я этого не сделал. У меня не было этой необходимости. Я просто помещаю абсолютные URL-адреса вместо относительных. Я использовал Firebug, чтобы посмотреть, что происходит, а затем я увидел неправильные URL-адреса. –