Javascript 在js.erb中呈现js文件

Javascript 在js.erb中呈现js文件,javascript,jquery,ruby-on-rails,ruby,Javascript,Jquery,Ruby On Rails,Ruby,是否可以在js.erb文件中呈现javascript文件?我在新的.js.haml文件中呈现了一个模态。但是,我有一些javascript代码,只有在调用该模式时才需要运行 新罕布什尔州 $('.modal-content').html("#{ j(render partial: 'new') }"); 当new.js.haml被称为upload.js时,我希望能够调用此文件或呈现此文件 $ -> files = []; $("#upload_button").clic

是否可以在js.erb文件中呈现javascript文件?我在新的.js.haml文件中呈现了一个模态。但是,我有一些javascript代码,只有在调用该模式时才需要运行

新罕布什尔州

$('.modal-content').html("#{ j(render partial: 'new') }");
当new.js.haml被称为upload.js时,我希望能够调用此文件或呈现此文件

$ ->
    files = [];

    $("#upload_button").click ->
        $("#file_input").trigger "click";

    $("#file_input").change (event) -> 
        file = event.target.files[0];
        files.push(file);
        uploadfile files.length - 1, file;

    uploadfile = (index, file) ->
        formData = new FormData();
        formData.append "file", file;
        fileitem = "
            <li class='file-item success'>
                <div class='active'>
                    <span class='remove'>×</span>
                    <span>#{file.name}</span>
                </div>
                <div class='lds-ellipsis'><div></div><div></div><div></div><div></div></div>
            </li>
        ";
        $('#filelist').append fileitem;
        setRemove();

    setRemove = ->
        $(".remove").unbind();
        $(".remove").click ->
           index = $(@).parent().parent().index();
           files.splice index, 1;
           $('.file-item').eq(index).remove();

您可以将JS代码直接放在JS.erb文件中,只有在渲染该部分时才会执行

请参阅更多:

- @ticket.errors.full_messages.each do |message|
  .error= message
= render 'layouts/standard_flash'
%ZenTicketForm{ title: 'Submit Help Request', :multipart => true, data: { remote: true } }
  .col-xs-12.col-sm-12.col-md-12.col-lg-12{style: 'padding:0;'}
    .col-xs-12.col-sm-12.col-md-12.col-lg-6
      %dl.dl-horizontal
        %dt Type
        %dd.show-more-container
          %ZenSelect#ticket_type{options: ['Questions', 'Incidents', 'Problems', 'Tasks'],
            class: 'select2',
            placeholder: t('activerecord.placeholders.zen_support/ticket.ticket_type') }
    .col-xs-12.col-sm-12.col-md-12.col-lg-12
      %dl.dl-horizontal
        %dt Subject
        %dd.show-more-container
          %input.form-control{ type: 'text',
            name: 'zen_support_ticket[subject]',
            placeholder: t('activerecord.placeholders.zen_support/ticket.subject') }
    .col-xs-12.col-sm-12.col-md-12.col-lg-6
      %dl.dl-horizontal
        %dt Priority
        %dd.show-more-container
          %ZenSelect#priority{ options: ['Low', 'Normal', 'High', 'Urgent'],
            data: { placeholder: "activerecord.placeholders.zen_support/ticket.priority" },
            class: 'select2' }
    .col-xs-12.col-sm-12.col-md-12.col-lg-12
      %dl.dl-horizontal
        %dt Comment
        %dd.show-more-container
          %ZenTextArea#comment{ placeholder: t('activerecord.placeholders.zen_support/ticket.comment'),
            error: @zendesk_ticket.errors&.dig(:comment) }
      %dl.dl-horizontal
        .new-show-less
          %button.fileUpload.btn.btn-default#upload_button{type: "button"}
            Attach File
            %input.upload#file_input{:name => "attachments[]",  multiple: true, :type => "file"}
          %ul#filelist