0

Grails を使用して Web アプリケーションを作成しています。私は dojo を使用することに決め、アプリケーションのすべてのページで使用できるように、最初に dojo の魚眼メニューを 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)の使い方が原因ではないので、メインに直接コードを入れてみましたが同じ結果でした。それで、私は何が欠けていますか?

4

2 に答える 2

0

これは、dojoの場所に対する相対URLにあります。ルートに相対的であるため、他のページではなくインデックスが機能します。

絶対URLを使用すると、問題が修正されます。

于 2009-09-29T03:40:43.290 に答える
0

dojo 宣言とインポートを main.gsp に配置するのではなく、レイアウト テンプレート ページに移動しようとしましたか?

于 2010-01-14T14:14:14.803 に答える