Для тех, кто использует 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
Спасибо за все предложения. Это то, что требовалось. Я мог бы найти свое решение на основе вашего предложения.
<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>
Вот пример 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.
В следующем примере используется 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>