【发布时间】:2020-01-30 15:32:22
【问题描述】:
我正在尝试使用“路线”类型创建自定义操作。但我想在发出请求之前显示一个确认模式。 例如,在列表视图中,我想要执行以下操作:编辑、查看和发布。但是当用户按下发布时,我想要一个确认模式。
删除操作已发生此行为,但我似乎无法理解如何将其复制到自定义操作。
我该怎么做?
更新
我已经尝试了answer 中的建议,但仍然遇到问题。
我正在尝试在 EasyAdmin 中添加自定义操作,但在进入控制器之前,我需要一个模式来要求确认。 它进入模态,但单击后,它什么也不做。 它适用于“window.confirm”,但我似乎无法使用引导模式复制此行为。 这是我设置操作的 yaml:
- {
name: 'import',
label: 'import',
type: 'route',
css_class: 'btn btn-secondary',
}
这是 modal 和 jquery 的代码:
{% extends '@!EasyAdmin/default/list.html.twig' %}
{% block main %}
{{parent()}}
{% block import_action %}
<div id="modal-import" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<h4>{{ 'import_modal.title'|trans(_trans_parameters, 'messages') }}</h4>
<p>{{ 'import_modal.content'|trans(_trans_parameters, 'messages') }}</p>
</div>
<div class="modal-footer">
<button type="button" data-dismiss="modal" class="btn btn-secondary">
<span class="btn-label">{{ 'action.cancel'|trans(_trans_parameters, 'messages') }}</span>
</button>
<button type="button" data-dismiss="modal" id="modal-delete-button" class="btn btn-secondary">
<span class="btn-label">{{ 'action.continue'|trans(_trans_parameters, 'messages') }}</span>
</button>
</div>
</div>
</div>
</div>
{% endblock import_action %}
{% endblock %}
{% block body_javascript %}
{{ parent() }}
<script type="text/javascript">
$('.action-import').on('click', function(e) {
e.preventDefault();
$('#modal-import').modal({ backdrop: true, keyboard: true })
.on('click', '#modal-import-button', function () {
let importForm = $('.action-import');
importForm.attr('action');
$('.action-import').triggerHandler('click');
});
});
</script>
{% endblock body_javascript %}
preventDefault() 停止事件,然后即使我强制重定向到路由,它也可以工作,但请求没有必要的参数。
【问题讨论】: