Как установить значение одного поля в качестве параметра при использовании удаленной ссылки gsp

Для тех, кто использует spacemacs и ipython, которые поставляются с python-layer, сохранение магии создает много нежелательного вывода из-за постоянной команды автозавершения, работающей на заднем плане, например:

len(all_suffixes)
';'.join(__PYTHON_EL_get_completions('''len'''))
';'.join(__PYTHON_EL_get_completions('''all_substa'''))
len(all_substantives_w_suffixes)
';'.join(__PYTHON_EL_get_completions('''len'''))
';'.join(__PYTHON_EL_get_completions('''all'''))
';'.join(__PYTHON_EL_get_completions('''all_'''))
';'.join(__PYTHON_EL_get_completions('''all_w'''))
';'.join(__PYTHON_EL_get_completions('''all_wo'''))
';'.join(__PYTHON_EL_get_completions('''all_wor'''))
';'.join(__PYTHON_EL_get_completions('''all_word'''))
';'.join(__PYTHON_EL_get_completions('''all_words'''))
len(all_words_w_logograms)
len(all_verbs)

Чтобы избежать этого, просто сохраните буфер ipython, как обычно, для сохранения любого другого: spc f s

0
задан Shamnad P S 17 January 2019 в 10:55
поделиться

3 ответа

Спасибо за все предложения. Это то, что требовалось. Я мог бы найти свое решение на основе вашего предложения.

    <g:javascript>
        function updateMethod(testId) {
            $.ajax({url: "${g.createLink( controller: 'testHandler', 
               action: 'testOnChange')}", 
               type: "POST",
               data: {'id': testId},
               success: function ( data ) {
                 $("#rowUpdated").show().delay(2500).fadeOut();
                 $("#updateFailed").hide();
              },
              error: function( j, status, eThrown ) {
                 $("#updateFailed").show().delay(2500).fadeOut();
                 $("#rowUpdated").hide();
                 console.log( 'Error ' + eThrown )
              }
           });
       }
    </g:javascript>
    <a href="javascript:void(0)" onclick="updateMethod('${test.id}');return false;" class="btn btn-default"><span class="icon-save"></span></a>
0
ответ дан Shamnad P S 17 January 2019 в 10:55
поделиться

Вот пример g: link, передающий одну пару имя-значение. Чтобы добавить несколько, просто добавьте запятую и вторую пару значений имени в квадратных скобках.

<g:link role="button" class="btn btn-success" action="details" params="${['folderNumber' : instance.fileFolderNumber]}" title="Details">Details</g:link>

Обратите внимание, что g: remoteLink устарела. Я перешел на использование JQuery для выполнения вызовов Ajax.

0
ответ дан Joe 17 January 2019 в 10:55
поделиться

В следующем примере используется ajax для передачи всех полей формы в контроллер с помощью serialize, вы можете выбрать, какие из них вы хотите использовать в своем действии, как мы сделали ниже, распечатав значение текстовой области.

Затем мы отображаем некоторый текст, который обновляет div на экране.

Контроллер

class TestStuffController {

    def index(){}

    def myAction() {
        println params.myTextArea
        render 'Updated'
    }
}

index.gsp

<!DOCTYPE html>
<html>
<head>
    <meta name="layout" content="main">
    <script type="text/javascript">
        $( document ).ready( function() {
            $( '#myButton' ).on( 'click' , function (event) {
                $.ajax({
                    url: "${g.createLink( controller: 'testStuff', action: 'myAction')}",
                    type: "POST",
                    data: $( "form" ).serialize(),
                    success: function ( data ) {
                        $( '#myDiv' ).html( data );
                    },
                    error: function( j, status, eThrown ) { console.log( 'Error ' + eThrown ) }
                });
            });
        });
    </script>
</head>
    <body>
        <div>
            <div id="myDiv"></div>

            <g:form id="myForm">
                <g:textArea name="myTextArea" id="myTextArea" />
                <button type="button" name="myButton" id="myButton">Update</button>
            </g:form>
        </div>
    </body>
</html>
0
ответ дан Mike W 17 January 2019 в 10:55
поделиться