嗨,我正在使用 Rails Admin,我需要在某些模型上打开任意模式表单。为了简单起见,我希望有一个链接,一旦单击它就会打开一个模式表单。我虽然只是在触发模态表单的链接上设置了什么类和“data-*”属性,但看起来它更复杂。我如何实现这一目标?我一直在浏览 gem 中的部分视图和 javascript,以尝试了解此功能是如何实现的,例如在一对多关系上,但代码有点超出我的知识范围,我无法完成。谢谢
问问题
1156 次
3 回答
2
尽管 Rails Admin remoteForm 小部件是为在表单中工作而构建的,但您可以在其他地方使用它,如下所示:
在您的视图中,在 div 中,在属性中插入带有 RA 内部链接的按钮data-link
,例如:
<div id="new-payment">
<a href="#" data-link="<%= new_path(:payment, associations: {client: client.id}, modal: true) %>" class="create btn btn-info">
New Payment
</a>
</div>
请注意,该链接具有 modal=true 属性。外部 div #new-payment 是将要应用小部件的 DOM 对象。
另一个重要提示是按钮必须具有create
新寄存器或update
更新现有寄存器时的类。
现在您可以在您的 javascript 中调用 remoteForm 小部件(即 /app/assets/javascripts/rails_admin/custom/ui.js):
$(document).on('rails_admin.dom_ready', function() {
$('#new-payment').remoteForm({
success: function(data, status, xhr) {
$.pjax.reload({container:"[data-pjax-container]"});
}
});
});
在这种情况下,我正在利用 pjax,并设置一个“成功”回调,在创建付款后调用,以重新加载页面的内容。
于 2016-01-14T16:28:43.983 回答
0
我认为您无法通过配置来完成此操作。您将需要扩展现有操作。
于 2013-03-22T00:42:52.447 回答
0
我也试图找出解决方案,我的方法是将 rails admin 中调用的函数复制到我的代码库中。它的方法不好,但正在工作。
创建类绑定到打开模型的操作,但它不起作用。所以我将_bindModalOpening、_bindFormEvents和_getModal函数放入我的代码库。
于 2014-08-04T08:27:35.520 回答