Grails: может ли remoteField обновить несколько полей? - PullRequest
0 голосов
/ 06 мая 2010

Предположим, у меня есть объект book с полем isbn . При вводе номера isbn я хочу обновить 2 поля: название и автора.

Мой контроллер выглядит так:

def ajaxGetBook = {
        def book = Book.findByIsbn(params.isbn)
        if(book==null) book = new Book()
        render book as JSON
    }

Итак, мой звонок работает, и я получаю полную книгу JSON. Теперь я хотел бы обновить 2 texfields атрибутом update

 <g:remoteField action="ajaxGetBook" update="title"  name="isbn" value="${bookInstance?.book?.isbn}" paramName="isbn"/>

Теперь поле заголовка обновляется с полным объектом книги, так что это не работает.

Можно ли обновить заголовок поля только с помощью JSON book.title?

Можно ли обновить больше полей одновременно?

Я мог бы render book.title as JSON, но это работает только для одного поля.

Спасибо

1 Ответ

1 голос
/ 10 мая 2010

Ну, тег g: remoteField явно для одного поля, поэтому вы не можете использовать его для обновления более одного. Итак, у вас есть 2 простых выбора:

  1. Используйте вызовы 2 g: remoteField ... это неплохой вариант, так как они бывают почти параллельными, поскольку они являются асинхронными вызовами.

  2. Сверните свой собственный Ajax. вместо этого используйте g: remoteFunction, а функцию JS, которую вы поместите в атрибут «success», возьмите в книгу и обновите соответствующие поля HTML.

...