2015-01-09 2 views
0

날짜 선택 도구를 레일스 (v4.1.8)의 양식에 넣었습니다. 그리고 나는 eyecon datepicker (과거에는 날짜를 사용할 수 없음)를 사용합니다. 나는이 페이지로 이동 한 경우 http://www.eyecon.ro/bootstrap-datepicker/새로 고침을하지 않는 한 데이트 피커가 레일스에 표시되지 않습니다.

<div class="form-group"> 
    <label for="expiration" class="col-sm-2 control-label"> 
     Expiration 
    </label> 
    <div class="col-sm-10"> 
     <input type="text" class="span2 form-control" name="expiration" id="dpd1" data-date-format="yyyy-mm-dd"> 
    </div> 
    </div> 

, 날짜 선택은 내가 날짜 양식을 클릭 할 때 표시되지 않습니다. 그러나, 만약 내가 컨트롤에 의해 신선한 페이지 + 크롬에 크롬. 날짜 선택 도구가 잘 작동합니다. 또는 URL 표시 줄에 주소를 직접 입력하고 Enter 키를 누르면 날짜 선택 도구가 작동합니다.

너무 이상합니다. 누군가 나에게 설명 할 수 있을까?

또 다른 사실은 도움이 될 수 있습니다. 레일스 대신 코드를 html로 저장하면. 그것은 잘 작동합니다.

감사의 시간이 수백만 갔네

+1

당신은'turbolinks'를 사용하고 있습니까 당신의 프로젝트에서? '터보 링크 '가 무엇을하는지 찾아야합니다. – ptd

+0

제공된 코드는이 문제를 디버깅하는 데 도움이되지 않습니다. 웹 사이트 링크가 있습니까? – Vector

답변

1

- 그것 때문에 turbolinks이다. turbolinks gem을 사용하면 훨씬 빠르게 웹 사이트를 만들 수 있습니다. 탐색 링크를 클릭 할 때 페이지 전체가 다시로드되지 않고 변경해야하는 부분 만 표시됩니다 (자세한 내용은 here을 읽으십시오)

자연스럽게 자바 스크립트는 터보 링크에 의해 추적되지 않으므로 새로운 콘텐츠가로드 될 때 실행되지 않으므로 터보 링크가 없으면 일반적으로 가질 수있는 아무런 후크 나 기능도없이 모든 요소가 남습니다. 페이지를 새로 고침 할 때 전체 페이지가로드되고 모든 자바 스크립트가 실행되어 예상대로 작동합니다.

window.onInit = function(handler) { 
    $(document).on('ready page:change', handler) 
} 

그리고 그것에서 모든 페이지에 출마하는 모든 자바 스크립트 포장 : 난 보통 도우미 메서드를 정의하여 처리

onInit(function() { 
    $('#dpd1').datepicker(); 
}): 
관련 문제