为了使我的一些代码更容易重用,我将一些javascript函数移动到[MyApp] /static/js/custom.js。其中一个被移动的函数调用了web2py的ajax()函数,传递给该函数的url是用{{= URL(...)}}生成的 - 在新的安排下,代码是生成url保留在.html文件中,而进行ajax()调用的代码位于单独的.js文件中。以前的安排是这样的:
查看:
<script>
function generate_grid() {
...
ajax("{{=URL('users','ajax_generate_grid')}}", [...], 'placeholder')
}
generate_grid()
</script>
这很好用。移动javascript代码后,安排如下:
[MyApp的] /static/js/custom.js:
function generate_grid(ajax_function_url) {
...
ajax(ajax_function_url, [...], 'placeholder')
}
查看:
<script>
generate_grid("{{=URL('users','ajax_generate_grid')}}")
</script>
新变体导致在进行ajax调用时将整个页面(不仅仅是新生成的组件)的渲染插入到目标div中。
有没有办法确保只有ajax函数生成的组件放在目标div中?