0

私は同じ問題で数日間立ち往生しており、どこにも行きません。

ag:formRemote タグを使用してメッセージ テンプレートを更新しています

<g:formRemote url="[action: 'updateStatus']" update="messages" name="updateStatusForm"
                    onSuccess="document.updateStatusForm.message.value='';">
                    <g:textArea name="message" value="" cols="3" rows="1"/><br/>
                    <g:submitButton name="Update Status"/>
                </g:formRemote>

次に、このフォームはコントローラーで updateStatus メソッドを呼び出します

def updateStatus(String message) {
        def status = new Post(message: params.message, author: lookupPerson())
        status.save(flush: true, failOnError: true)
        def messages = currentUserTimeline()
        render template: 'profileMessages', collection: messages, var: 'profileMessage'
    }

しかし、定義ステータス行は

def status = new Post(message: params.message, author: lookupPerson(), child: Child.get(childInstance.id)

私の見解では、ユーザーが選択した childInstance があります。とにかく、保存されているコントローラーにグローバル変数を含めることができますか、それとも formRemote タグで子インスタンスのパラメーター ID を送信できますか。私は今日ずっとこのようにしようとしてきたので、そこにはないと思います。

どんな助けでもいいでしょう。私が知っている唯一の方法は、childInstance.id をプロパティ ファイルに書き込んで読み戻すことですが、これは非常に悪い習慣だと思うので、もっと良い方法があるはずです。

4

2 に答える 2

1

にパラメータを追加できます<g:formRemote>

grailsドキュメントの例:

<g:formRemote name="myForm" update="updateMe"
              url="[controller: 'book', action: 'byAuthor', params: [sort: 'title', order: 'desc']]">
    Author: <input name="author" type="text" />
</g:formRemote>
于 2012-09-11T12:34:04.210 に答える
0

おそらく<g:hiddenField name="childId" value="${childInstance.id}"/>formRemote タグに を追加すると、メッセージと同じ方法でサーバーに送信されます。

于 2012-09-11T00:58:18.053 に答える