Grails удаленное поле - paramName и params вместе - PullRequest
1 голос
/ 20 марта 2012

Я кое-что заметил, когда пытался сделать это сегодня:

<g:remoteField action="getReportsToResults" update="reportsToResultsDiv" paramName="search" name="reportsToResults" value="" />

У меня есть этот раздел кода, где мой remoteField обновляет div, который содержит поле выбора.Это работает, но я хочу ограничить результаты, передаваемые в div, на основе значения атрибута экземпляра домена (ID компании).У меня есть переменная экземпляра (contactInstance.company).

Когда я пытаюсь добавить параметры в этот код, значение поиска переходит к '+ this.value +' вместо фактического значения текстового поля.,Как это происходит и как передать и значение поля, и другой параметр?

<g:remoteField action="getReportsToResults" update="reportsToResultsDiv" paramName="search" params="[company:contactInstance.company]" name="reportsToResults" value="" />

1 Ответ

0 голосов
/ 20 марта 2012

Ошибка, которую вы получаете, заключается в том, что remoteFeild не принимает params в качестве своих параметров, а когда вы используете ключевое слово params, он вводит в заблуждение код (посмотрите на исходный код remotefield). Если вам нужно передать параметр, я бы предложил поместить их в Id и передать их вашему контроллеру

например:

  <g:remoteField action="getReportsToResults" update="reportsToResultsDiv" paramName="search" params="[company:contactInstance.company]" name="reportsToResults" value="" id = "123"/>

Параметры RemoteField:

имя (обязательно) - название поля

значение (необязательно) - начальное значение поля

paramName (необязательно) - имя параметра, отправляемого на сервер

действие (необязательно) - имя действия, которое будет использоваться в ссылке, если не указано, действие по умолчанию будет связано

controller (необязательно) - имя контроллера, которое будет использоваться в ссылке, если не указано, текущий контроллер будет связан

id (необязательно) - идентификатор для использования в ссылке

update (необязательно) - либо карта, содержащая элементы для обновления для состояний «success» или «fail», либо строка с элементом для обновления, в котором события сбоя будут игнорироваться

before (необязательно) - функция javascript, вызываемая перед удаленным вызовом функции

after (необязательно) - функция javascript, вызываемая после удаленного вызова функции

асинхронный (необязательно) - выполнять ли вызов асинхронно или нет (по умолчанию true)

метод (необязательно) - метод, используемый для выполнения вызова (по умолчанию «post»)

исходный код от 1.3.7

def remoteField = { attrs, body ->
    def paramName = attrs.paramName ? attrs.remove('paramName') : 'value'
    def value = attrs.remove('value')
    if (!value) value = ''
    out << "<input type=\"text\" name=\"${attrs.remove('name')}\" value=\"${value}\" onkeyup=\""

    if (attrs.params) {
        if (attrs.params instanceof Map) {
            attrs.params[paramName] = new JavascriptValue('this.value')
        }
        else {
            attrs.params += "+'${paramName}='+this.value"
        }
    }
    else {
        attrs.params = "'${paramName}='+this.value"
    }
    out << remoteFunction(attrs)
    attrs.remove('params')
    out << "\""
    attrs.remove('url')
    attrs.each { k,v->
        out << " $k=\"$v\""
    }
    out <<" />"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...