Dojo Fisheye в приложении Grails

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

вот код в моем 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) не является причиной, я поместил код непосредственно в основной и получил тот же эффект. Итак, что мне не хватает?


person albert green    schedule 28.09.2009    source источник


Ответы (2)


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

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

person albert green    schedule 29.09.2009

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

person Philippe    schedule 14.01.2010
comment
Нет, я не. У меня не было такой потребности. Я просто ставлю абсолютные URL вместо относительных. Я использовал Firebug, чтобы посмотреть, что происходит, а затем увидел неправильные вызовы URL. - person albert green; 15.01.2010