2017-05-16 27 views
-1

模態的div在佈局渲染部分:通過模態中的Rails

main 
    = render 'layouts/desktop_sidebar' 
    #modal-window.modal aria-labelledby="myModalLabel" role="dialog" tabindex="-1" 

    .main-content 
    = render 'flash' 
    = yield 

模態內容:

.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_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') %>"); 

客戶端控制器操作:點擊鏈接後 Image

DOM:

def quick_add 
    @client = Client.new 
    initialize_client_children 

    respond_to do |format| 
     format.html 
     format.js 
    end 
end 

DOM點擊鏈接之前 Image

當點擊鏈接來渲染模式,它擊中控制器動作併成功達到部分視圖。屏幕變暗,但模式完全不顯示。

將模態移出部分並將模態內容置於div和id聲明下方時,模型將呈現,但顯然我無法訪問控制器變量。

回答

0

"#modal-window"元素在哪裏?您應該選擇.modal-body。如:

$(".modal-dialog .modal-body").html("<%= escape_javascript(render 'quick_add') %>"); 
+0

#modal-window元素位於我的佈局文件中。 此方法的工作原理 - 您也可以按照您的建議選擇模態體。 我只是在我的控制器respond_to塊中爲js設置佈局爲false。 – Alexi