Modal div in Layout-Rendering:modalen Teil durch in Rails
main
= render 'layouts/desktop_sidebar'
#modal-window.modal aria-labelledby="myModalLabel" role="dialog" tabindex="-1"
.main-content
= render 'flash'
= yield
Modal Inhalt:
.modal-dialog role="document"
.modal-content
.modal-header
button.close aria-label="Close" data-dismiss="modal" type="button"
span aria-hidden="true" ×
h4#myModalLabel.modal-title Modal title
.modal-body
| Test body content
.modal-footer
button.btn.btn-default data-dismiss="modal" type="button" Close
button.btn.btn-primary type="button" Save changes`
Link-modal zu wechseln:
= link_to 'Quick Add', companies_quick_add_path, remote: true, data: { toggle: "modal", target: '#modal-window' }
quick_add.js.erb
$("#modal-window").html("<%= escape_javascript(render 'quick_add') %>");
Clients Controller-Aktion:
def quick_add
@client = Client.new
initialize_client_children
respond_to do |format|
format.html
format.js
end
end
DOM vor Link: Image
DOM nach Link: Image
Wenn auf den Link klicken, die modal zu machen, es geht an die Controller-Aktion und erreicht erfolgreich die Sicht teilweise. Der Bildschirm verdunkelt sich, aber das Modal zeigt sich überhaupt nicht.
Wenn das modale aus dem partiellen verschoben wird und der modale Inhalt direkt unterhalb der div- und id-Deklaration platziert wird, wird das Modell gerendert, aber ich habe offensichtlich keinen Zugriff auf die Controller-Variablen.
Das # modal-window Element ist in meiner Layout-Datei. Diese Methode funktioniert - Sie wählen auch den Modal-Körper wie Sie vorgeschlagen haben. Ich hatte einfach Layout in meinem Controller auf "false" gesetzt, um js für js zu blockieren. – Alexi