【问题标题】:js.erb file not getting triggeredjs.erb 文件没有被触发
【发布时间】:2019-01-30 08:43:08
【问题描述】:

我有三个文件: 控制器:

   def index
    @filterrific = initialize_filterrific(
      DimDictionary,
      params[:filterrific],
      select_options: {},
      persistence_id: 'shared_key',
      default_filter_params: {},
      available_filters: [ :dictionary_word_filter ]
    ) || return

    @dictionaries = @filterrific.find.limit(30)

    respond_to do |format|
      format.html
      format.js
    end
  end

Index.html.haml

= form_for_filterrific @filterrific do |f|
  .ui.form
    .fields
      .field
        Filter Word
        = f.text_field :dictionary_word_filter
  = render_filterrific_spinner
= render(partial: '/test/list', locals: { dictionaries: @dictionaries })

Index.js.erb

<% alert("hi"); %>
<% console.log('working Mannnnn') %>
<%  js = escape_javascript(render(partial: '/test/list', locals: { dictionaries: @dictionaries })) %>
$("#filterrific_results").html("<%= js %>");

Index.js.erb 没有被触发。每次页面加载时,它应该运行Index.js.erb 并显示警报和console.log 并显示html 对吗?或者 js.erb 只会在 ajax 请求时触发?

我在这里使用filterrific gem 进行过滤,但 index.js.erb 文件永远不会被触发。

即使我已经在我的控制器中包含了 js 格式。应该如何?我做错了吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 erb filterrific


    【解决方案1】:

    每次页面加载时,它都应该运行 Index.js.erb 并显示 警报和console.log 以及显示html 对吗?

    不,format.js 表示,当客户端想要 JS 时,您的控制器返回 JS 作为响应。

    你应该使用remote:true,例如,如果你想响应JS。不可能同时渲染两者,因为控制器操作一次只能响应一个 HTTP 请求。

    更多关于 Rails 中的响应: https://api.rubyonrails.org/classes/ActionController/MimeResponds.html

    关于 Rails 中的 javascript: https://guides.rubyonrails.org/working_with_javascript_in_rails.html

    【讨论】:

    • 因此,如果您阅读了 filterrific.clearcove.ca/pages/example_application.html 这个 gems 文档。他们正在触发对您的控制器的 ajax 调用,然后 erb 会自动更新列表,但问题是每次我执行某些操作时,gem 表单都不会触发对我的后端的调用
    • 所以,您的问题可能与 gem 的配置有关。任何来自控制台的错误日志?
    • 没有错误,就像没有一样。我以前曾将此 gem 用于其他项目,但现在我遇到了问题。我已经正确配置了所有内容,但它似乎仍然有效。也许你可以看看这个stackoverflow.com/questions/54416093/…
    • 您可以查看 filterrific 演示源代码:github.com/jhund/filterrific_demo 并比较您的代码。检查你将 filterrific/filterrific-jquery 附加到你的 application.js
    猜你喜欢
    • 2011-03-25
    • 1970-01-01
    • 2013-07-06
    • 2019-11-02
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 2014-11-29
    相关资源
    最近更新 更多