我有一个引导莫代尔点击该链接时触发:如何在点击链接后将局部变量发送到局部渲染?
<a class="plus" href="javascript:;" data-toggle="modal" data-target="#myModal"> </a>
然后我有这个在我_footer.html.erb
<%= render 'shared/tag_users_modal' %>
,然后有这个标准的引导模态:
<!-- Modal -->
<div class="modal tagging fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Tag User</h4>
</div>
<div class="modal-body">
<%= simple_form_for @node, url: add_tagged_user_node_path(@node), method: :post do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input_field :user, label: "Users", collection: @users, as: :check_boxes, checked: @node.user_tags %>
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
这不起作用,因为@node
是零 - 即它没有通过。我无法从我的_footer
部分传递该变量,所以我希望能够在模态的原始执行中传递它。
我如何做到这一点?或者我如何以另一种方式做到这一点?
编辑1
要添加更多的上下文,即调用引导模态初始链路实际上是另一部分是具有node
一个局部变量传递给它也。一个被称为是这样的:
<%=渲染部分:“共享/箱”,当地人:{节点:节点}%>
但我仍然需要继续模态的执行仅切换之后被解雇首先点击链接shared/box
。
总结: - /shared/box
部分有原始链接,引发BS模式。 - /shared/footer' contains a render of another partial
tag_users_modal . -
/shared/tag_users_modal contains the modal, but I need the
@node object passed to it and the
add_tagged_user_node_path`工作。
现在它没有通过,因为我不能想出一个办法来获得原来的node: node
到链中的第三部分。
我明白,但这不是问题。发生了什么是我的部分存储在'shared'目录中,并且该部分是从'shared'目录中的另一个部分调用的。该部分被调用了一个局部变量'node:node',但是因为我正在将执行传递给只在上面的链接被点击时触发的模式,所以我无法将该'node:node'传递给部分在点击链接之后呈现弹出/模式。我希望这更清楚。如果这是标准控制器中的标准视图,则您的建议可行。但是它不是:( – marcamillion 2015-03-13 07:38:17
我增加了更多的细节,所以你可以更清楚地知道我想实现的目标。 – marcamillion 2015-03-13 07:43:16
首先,从你的partials中删除所有的实例变量,然后使用局部变量,这只是一般性的建议。在你定义它的时候,问题是你根本没有想要使用的变量,没有“解决方案”,你必须重新填充变量,然后才能使用变量。在链接中有一些参数,当链接被点击并且控制器动作被调用时,它将帮助你重新找到'node'。 – Humza 2015-03-13 08:05:13