Transaction
작성 및 편집을위한 두 가지 형식 의 모델이 Transaction
있습니다. 둘 다 remote: true
입니다. 양식은 사소한 차이를 제외하고는 거의 동일하므로 클래스와 ID가 동일한 태그가 거의 동일합니다.
버튼, 필드, 양식 드롭 다운의 모든 동작은 transaction.js.coffee
파일에 설명되어 있습니다.
내 edit.js.coffee
:
$('#new_transaction').remove()
$('#t_table').before('<%= j render 'edit_form' %>')
$('#edit_transaction_<%= @transaction.id %>').slideDown 'fast'
edit
컨트롤러의 동작도 매우 간단합니다.
def edit
@transaction = current_user.transactions.find(params[:id])
respond_to do |format|
format.html { redirect_to root_url }
format.js
end
end
따라서 사용자가 "Edit"버튼을 클릭 하면 같은 위치 에서 코드를 edit.js.coffee
제거 new_transaction
하고 렌더링합니다 edit_transaction
.
그러나의 모든 동작 transaction.js.coffee
이이 새로운 형태로 작동하지 않습니다. 에 복사하면 edit.js.coffee
정상적으로 작동합니다. 그러나 그것은 나에게 좋지 않습니다. 왜냐하면 두 곳에서 코드를 변경해야하기 때문입니다. 또한 Rails의 모든 DRY 철학에 좋지 않습니다 (:
감사!
문제는 양식 태그를 포함하도록 DOM을 수정하기 전에 스크립트가 실행된다는 것입니다. 당신도 사용할 수 있습니다 .on()
jQuery를 기능 (의 함수를 호출 (때로는 까다 롭습니다) 또는로드 양식 후를 edit.js.coffe
당신이 정의하는 것을)transaction.js.coffee
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다