0

Grails remoteFunction を使用して、子ドメイン オブジェクトで create メソッドを呼び出すことは可能ですか?

gsp ページの remoteFunction 呼び出しから子コントローラーの create 関数を呼び出そうとしていますが、エラーが発生し続けます

Message: Provided id of the wrong type for class XXX.YYY. Expected: class java.lang.Long, got class java.lang.String

remoteFunction コードは次のようになります。

$.ajax({
    type: 'POST',
    url: "${remoteFunction(controller:'childController' action:'create' )}"
});

午前中ずっと Google を検索しましたが、select ステートメントをカスケードするための remoteFunctions しか見つかりませんでした。

4

2 に答える 2

0

create メソッドは create gsp ビューを提供することを思い出してください。そのビューには、save コントローラ メソッドに投稿する保存ボタンがまだあります。新しいクラスをインスタンス化し、すべてを一度に保存するカスタム メソッドを作成する必要があると思います。

于 2013-09-19T20:30:17.610 に答える
0

だから私がこれまで取り組んできたのはこれです:

<script type="text/javascript">
function someFunction(){
    var id = ${parentInstance.id};
    var $element = $('#elements ul li.selectedAdd');
    $element.removeClass('selectedAdd');
    $('#right-side ul').append($element);
    ${remoteFunction(
        action:'createChild',
        update:'right-side',
        params:'\'id=\'+ escape(id) +\'&childType=\' + escape(childType)'
    )}
};

このコントローラーメソッドで動作します:

def createChildBlock = {
    def parent = Parent.get(params.id)
    def childBlockInstance = new ChildBlock(childType:params.childType,parent:parent)
    childBlockInstance = myService.saveChildBlock(parent,params)

    render (template:"childBlock", model:[childBlockInstance:childBlockInstance])
}

そして、それは機能します。両方のドメイン オブジェクトがデータベースに保持され、ビューが更新されます。right-sideしかし、更新を取得している divに以前のオブジェクトを保持するにはどうすればよいですか? 関数を実行するたびに、前の子が削除され、新しい子に置き換えられます。新しい子をリストの最後に追加したいだけです。

于 2013-09-20T21:50:47.127 に答える