2013-01-15 37 views
2

我想在同一視圖中加載不同的web2py組件,但不能同時加載。我有5個.load文件,它們具有不同場景的表單字段,這些文件由onchange select腳本動態調用。 web2py可以做到這一點嗎?web2py組件

回答

3

是的,但在這種情況下,請勿在web2py視圖中使用LOAD()幫助程序,因爲這會生成在頁面加載時立即加載組件的Javascript。相反,創建一個div一個id,以承載組件,並讓您onchange事件處理程序調用該函數web2py_component()用DIV作爲目標的ID:

<div id='mycomponent'></div> 

<script> 
$(function() { 
    $('some_selector').change(function() { 
    web2py_component('{{=URL('default', 'mycomponent')}}', target='mycomponent'); 
    }); 
}); 
</script> 
+0

謝謝,我想通了。現在正在工作。 1另外一個問題是,每個.load文件都必須在控制器中有一個以它命名的函數,導致我在刪除這些函數時不工作。 – samaras

+1

.load文件只是視圖 - 它們自己不做任何事情。像任何動作一樣,組件需要控制器功能。當函數返回時,它的相關視圖(即.load文件)被執行。請注意,組件視圖文件不需要有.load擴展名。那只是一個慣例。當組件重定向時它可能很有用,因爲.load擴展將在重定向中傳遞。 – Anthony