1

ドロップダウンメニューで選択が行われると、関数を呼び出そうとしています。「Code」ドメイン クラスの list.gsp のドロップ ダウン メニューのコードを次に示します。

<td><g:select name="data" from="${codeInstance.datas.language}" 
          onchange="${remoteFunction(action: 'translationById')}"/> 
</td>

そして、これが私が呼び出そうとしている関数です。これは私のCodeControllerにあります:

def translationById = {
        println "Fine"
        //println params;
    }

「Fine」を印刷しようとしているだけなので、関数が呼び出されたことはわかっていますが、「Fine」は印刷されません。関数が呼び出されないのはなぜですか?

4

2 に答える 2

1

クロージャを使用する代わりに、次のようなメソッドを使用します。

def translationById() {
        println "Fine"
        //println params;
}

また、firebugなどのブラウザデバッガを使用して、エラーメッセージが表示されているかどうかを確認します。

remoteFunctionではなくonchangeイベント内にアラートを配置するとどうなりますか?警告が表示された場合、問題はプロトタイプライブラリにあると思います。プロトタイプライブラリをヘッダーに追加します。のように<g:javascript library="prototype" />

于 2012-08-06T19:58:48.677 に答える
0

構文は私には問題ないようです。「codeInstance」と「datas」が null でないことを確認してください。また、次のようにコントローラー名を渡してみてください。

remoteFunction(action: 'translationById', controller: 'code')

Grails の新しい基準は、クロージャーの代わりにメソッドを使用することです。

def translationById(){
    println "fine"
}
于 2012-08-06T18:52:25.340 に答える