【问题标题】:How to avoid to evaluate a JavaScript response?如何避免评估 JavaScript 响应?
【发布时间】:2014-07-06 07:36:30
【问题描述】:

我正在使用 Ruby on Rails 4。在 my previos question 中,我询问了如何处理 link_to :remote 元素“a là Rails Way”的 JavaScript 事件。但是,我想让 AJAX 执行 not 评估 JavaScript 响应(无论它是什么),以便我可以实现我的自定义行为。

在我的例子中,应该忽略的 AJAX 响应是通过单击以下链接生成的:

link_to('destroy', article_path(@article), :method => :delete, :remote => true, :id => 'css_id')

成功时它会返回一个 JS 重定向,但我想简单地捕捉成功响应而不评估后续重定向。

$('#css_id').on('ajax:success', function(event, xhr, status) {
  alert("success!");

  \\ Here I would like to do not evaluate the JS response.
});

我怎样才能做到这一点?

【问题讨论】:

    标签: javascript jquery ruby-on-rails ruby-on-rails-4 unobtrusive-javascript


    【解决方案1】:

    您可以编写一个 javascript 行为并在您的 .js.erb 文件中调用此行为,因为您可以避免在模板中编写更多的 js 代码。应该是这样的。

    EX:在create.js.html中:

    App.createProdict() #pass the required params.
    

    而且这个 App.createProduct 是一个 js 行为。

    【讨论】:

    • 你是说我必须实现一个新的.js.html 文件并在控制器中使用case when 语句来处理事情吗?如果是这样,是否意味着控制器会更复杂?顺便说一句:我想忽略 JS 响应,以免使控制器复杂化...
    猜你喜欢
    • 2016-05-08
    • 2010-10-03
    • 2014-06-13
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多