1

更新: このエラーを、この選択で onchange イベントを登録することに切り分けました。onchange を削除すると、ページはエラーなしでレンダリングされます。それ以外の場合は、No javascript providerエラーが発生します。

<g:select optionKey="id" optionValue="name" name="course" id="course"
   from="${com.TourneyCard.Course.list(sort:'name')}" value="${homeCourse.id}"
   onchange="${remoteFunction(controller:'foursome', action:'ajaxGetTeesJSON',
     params:'\'id=\' + escape(this.value)', 
     onSuccess:'updateTees(data);')}">
</g:select>

さまざまな理由から、jQuery プラグインの代わりにリソース プラグインを使用して jQuery を組み込みたいと考えています。それはほとんど機能していますが、レンダリングされず、代わりにNo javascript provider is configuredというエラーを発行しているページがあります。

私の ApplicationResources.groovy は jquery を定義します:

jquery {
    resource url: 'js/jquery/jquery-1.9.1.min.js', disposition: 'head'
}

私の main.gsp レイアウトは次のようになります。

<head>
    <g:layoutHead/>
    <g:javascript library="jquery"/>
    <r:require module="jquerymobile"/>
    <r:layoutResources />
</head>

プロバイダーが構成されていないというエラーを発行するページは、次のようになります。

<head>
    <meta content="main" name="layout">
    <r:require modules="jqmdatebox,jqmgrid960,updateTees"/>
    ....
</head>
<body>
    ....
    <g:javascript>
        var zselect = document.getElementById('tee')
        var zopt = zselect.options[zselect.selectedIndex]
    </g:javascript>
</body>
4

5 に答える 5

2

JQuery リソースを手動で設定しているため、以下を設定する必要はありません。

<g:javascript library="jquery"/>

代わりに、モジュールを必要とするだけです。

<r:requires module="jquery, jquerymobile"/>

編集

あなたの新しい情報を見ると、あなたの問題はremoteFunction方法にあると思います。使用しているJavaScriptライブラリを知る必要があるためです。ページに追加<g:setProvider library="jquery"/>してみてください。

于 2013-08-20T23:20:46.420 に答える
1

g:remoteLinkタグが原因で発生した同じエラーを解決しました。電話する必要があることがわかりました 二回。1 つは頭に、もう 1 つは js ファイルをロードするフッターにあります。BuildConfig.groovy に jQuery をプラグインとして追加する必要もありました。

plugins {
    runtime ":jquery:1.8.3"
    runtime ':resources:1.2'
    ...
}

私のmain.gspは

  <r:require modules="app, jquery" />
  <g:setProvider library="jquery" />
  <r:layoutResources/>
  <g:layoutHead />

私は g:layoutHead を最後に持っているので、jQuery はそれを必要とするスクリプトの前にロードします。

いくつかのスクリプトをインライン化するだけの場合は、見たいと思うかもしれません

このタグを使用してインライン JavaScript コードをレンダリングする場合は、Resources プラグインのタグを使用して、インラインではなく、本文の最後または必要に応じてヘッドに含まれるインライン スクリプトを生成することをお勧めします。さらに制御するには、Resources プラグインのタグを直接使用します。-

于 2013-09-04T04:11:03.457 に答える