首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >js.erb文件未被触发

js.erb文件未被触发
EN

Stack Overflow用户
提问于 2019-01-30 08:43:08
回答 1查看 1.2K关注 0票数 1

我有三个文件:控制器:

代码语言:javascript
复制
   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

代码语言:javascript
复制
= 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

代码语言:javascript
复制
<% 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格式。应该是什么样子?我做错什么了吗?

EN

回答 1

Stack Overflow用户

发布于 2019-01-30 09:02:40

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

不,format.js的意思是,当客户机想要JS时,控制器返回JS作为响应。

例如,如果您想在responnse中使用JS,就应该使用remote:true。不可能同时呈现两者,因为控制器操作一次只能响应一个HTTP请求。

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

关于Rails中的javascript:rails.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54436435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档