Javascript 仅当某些条件为真时才执行js.erb
我对cofeescript或js不是很有信心,所以我有点困惑。我有一个快速编辑功能,可以发送AJAX请求并更新数据库。目前,我正在手动更改编辑的位置并显示它,但它看起来像是一个骗局,徽章不会更新!我想重新呈现我的特定帖子。我给了我的Javascript 仅当某些条件为真时才执行js.erb,javascript,jquery,ruby-on-rails,ajax,coffeescript,Javascript,Jquery,Ruby On Rails,Ajax,Coffeescript,我对cofeescript或js不是很有信心,所以我有点困惑。我有一个快速编辑功能,可以发送AJAX请求并更新数据库。目前,我正在手动更改编辑的位置并显示它,但它看起来像是一个骗局,徽章不会更新!我想重新呈现我的特定帖子。我给了我的一个数据id属性,这样我就可以通过post.find($(#li).data('id'))获取我的帖子了。(不太确定它是否有效,但应该有一种传递变量的方法。现在主要的问题是我的帖子/index.js.erb上还有其他我不想执行的脚本。我只希望在AJAX成功(在另一个文
一个数据id
属性,这样我就可以通过post.find($(#li).data('id'))获取我的帖子了。
(不太确定它是否有效,但应该有一种传递变量的方法。现在主要的问题是我的帖子/index.js.erb上还有其他我不想执行的脚本。我只希望在AJAX成功(在另一个文件中)或$(“#form”中)后执行与此相关的部分。).submit
。现在我不知道如何实现这一点!这听起来像是一个简单的问题,但我对如何使用所有其他脚本和限制这些脚本的一部分缺乏知识
编辑关于如何从另一个coffeescript或js文件调用my index.js.erb?或发送参数并在该文件中使用它们的任何建议?如果此Ajax是在onchange事件上执行的,那么您将传递一个值,稍后可以对.js.erb文件进行评估。例如: 假设事件发生在文本\字段\标记的一次更改上
<%= text_field_tag(:for_event, "", :onchange=> "TheAjax('identifier')") %>
您的js.erb文件
<% case @my_identifier %>
<% when 'identifier' %>
Here you put whatever part of your JS you want to execute ONLY when the condition is met.
<% else %>
Whatever else you want to execute when the previous conditions are not met
<% end %>
在这里,您将只在满足条件时才执行JS的任何部分。
当前面的条件不满足时,您希望执行的任何其他操作
还请记住,如果您想处理数据库更新,您还可以在控制器中执行“案例”,并在满足条件时管理数据库更改。是,它在('change')上执行检查我修改过的答案谢谢,伙计,我在看这里之前确实做了这个,但答案很棒。它比我做的更完整、更整洁。
def show
@my_identifier = params[:the_id] (session var so you'd access it on your js.erb file)
end
<% case @my_identifier %>
<% when 'identifier' %>
Here you put whatever part of your JS you want to execute ONLY when the condition is met.
<% else %>
Whatever else you want to execute when the previous conditions are not met
<% end %>