복붙노트

[RUBY-ON-RAILS] 레일, 자바 스크립트는 LINK_TO 도우미를 클릭 한 후로드되지

RUBY-ON-RAILS

레일, 자바 스크립트는 LINK_TO 도우미를 클릭 한 후로드되지

내가 레일에 LINK_TO 도우미를 사용할 때 좀 문제가 내 자바 스크립트를로드하는 데 문제가 있습니다. 나는 수동으로 입력하면 URL을 '로컬 호스트 : 3000 / 제품 / 새로운'또는 페이지, 자바 스크립트로드를 다시로드하지만, 아래에 서면으로 나는 링크를 통해 갈 때, JQuery와 $ (문서) .ready는에로드되지 않습니다 새로운 페이지.

나는이 링크를 클릭하면 LINK_TO, 자바 스크립트가로드되지 않습니다

<%= link_to "New Product", new_product_path %>

products.js 파일

$(document).ready(function() {
    alert("test");
});

어떤 도움이 많이 주시면 감사하겠습니다. 사전에 감사합니다!

해결법

  1. ==============================

    1.당신은 레일 4를 사용하고 있습니까? (레일을 수행하여 알아 콘솔에서 -v)

    당신은 레일 4를 사용하고 있습니까? (레일을 수행하여 알아 콘솔에서 -v)

    이 문제로 인해 새로 추가 된 Turbolinks 보석에 아마. 그것은 하나의 페이지 자바 스크립트 응용 프로그램과 같은 응용 프로그램 동작합니다한다. 그것은 몇 가지 이점이 (가 빠릅니다)이 있지만 페이지가 다시로드되지 않습니다 때문에 불행하게도 () .ready $ (문서)와 같은 일부 기존 이벤트를 나누기. 직접 URL을로드 할 때 자바 스크립트가 작동하는 이유는 설명 할 것입니다,하지만 당신은 LINK_TO를 통해로 이동하지 않을 때.

    여기 Turbolinks에 대한 RailsCast입니다.

    몇 해결책이 있습니다. 이벤트 : 대신 Turbolinks '변경 페이지'를 사용 .ready () 문에 당신은 드롭 인 (drop-in) 수정으로 jquery.turbolinks를 사용하거나 $ (문서)를 전환 할 수 있습니다 :

    $(document).on('page:change', function() {
        // your stuff here
    });
    

    또는, 일반 페이지가로드뿐만 아니라 Turbolinks과의 호환성을 위해이 같은 일을 할 수 있습니다 :

    var ready = function() {
        // do stuff here.
    };
    
    $(document).ready(ready);
    $(document).on('page:change', ready);
    

    당신은 루비 온 레일즈를 사용하는 경우> (5) 사용 (당신은 콘솔에서 -v 레일을 실행하여 확인할 수 있습니다) 'turbolinks :로드'대신 '페이지 : 변화를'

    $(document).on('turbolinks:load', ready); 
    
  2. ==============================

    2.저도 같은 probleme을 가지고 있지만 jquery.turbolinks은 도움이되지 않습니다. 나는 GET 메서드를 오버라이드 (override) 할 것으로 나타났습니다.

    저도 같은 probleme을 가지고 있지만 jquery.turbolinks은 도움이되지 않습니다. 나는 GET 메서드를 오버라이드 (override) 할 것으로 나타났습니다.

    내 샘플이 있습니다 :

    <%= link_to 'Edit', edit_interpreter_path(@interpreter), method: :get %>
    
  3. ==============================

    3.당신은 5 대신 레일에있는 경우 '페이지 : 변화':이 같은 당신이 '로드 turbolinks'를 사용한다 :

    당신은 5 대신 레일에있는 경우 '페이지 : 변화':이 같은 당신이 '로드 turbolinks'를 사용한다 :

    $(document).on('turbolinks:load', function() {
      // Should be called at each visit
    })
    

    출처 : https://stackoverflow.com/a/36110790

  4. ==============================

    4.또한 사업부 그 지정 데이터 노 turbolink로 링크를 포장 할 수 있습니다.

    또한 사업부 그 지정 데이터 노 turbolink로 링크를 포장 할 수 있습니다.

    예:

    <div id="some-div" data-no-turbolink>
        <a href="/">Home (without Turbolinks)</a>
    </div>
    

    출처 : https://github.com/rails/turbolinks

  5. ==============================

    5.만들기 확실히 당신은 어떤 인라인