2012-04-19 15 views
2

私のコントローラ上のメソッドを呼び出すと、私のページがレンダリングされ、更新が表示されます。 grailsメソッドを呼び出すために私のajax呼び出しに何を追加する必要がありますか?Grails - JSメソッドでajaxを呼び出した後のレンダリングページ

私の所望の流れは次のとおりです。ビュー名簿

  • 選択チェックボックスで

    • は、onclickの私のコントローラのメソッドへのAJAX呼び出しを持っているJS関数に行き、actionSubmitを打ちます。
    • 私のコントローラであるupdateInformationの呼び出しは、選択したすべての人を更新します。
    • 呼び出し後、私のビューの一覧を更新したいと思います。 (現在流れ は、JSの呼び出し後に終了)

    roster.gsp:

    $.ajax({ 
    url: "updateInformation", 
    type:"GET", 
    data:{ids:JSON.stringify(idList), option:option, id:id} 
    }); 
    

    私はコントローラに呼びたい:

    def roster() { 
        [render stuff] 
    } 
    
    def updateInformation() { 
        ... stuff ... 
    } 
    
  • 答えて

    1

    Grailsは、デフォルトではURLパスでマッピングを解決しますコントローラとアクション名に置き換えたら、あなたのcontroller.actionを取得する必要があります:

    $.ajax({ 
        url: "/$controller/$action", 
        type:"GET", 
        data:{ids:JSON.stringify(idList), option:option, id:id} 
    }); 
    

    あなたは以下のgrails2を使用している場合にも、お使いのコントローラのアクションを閉鎖する必要があります:

    def viewPage = { 
        // 
    } 
    

    あなたが呼び出しを変更したくない場合は、元の例はupdateNumbersコントローラのデフォルトアクションを呼び出すことになります。 元の通話をupdateNumbers.viewPageにマップする場合は、コントローラupdateNumbersstatic defaultAction = "viewPage"のように、デフォルトのアクションをviewPageに設定することができます。

    関連する問題