在web2py中,何时javascript可以判断是否所有LOAD()组件都已加载?

时间:2016-03-28 14:57:48

标签: ajax web2py

在web2py中,我使用{{=LOAD(...)}}将一整套单独的表单加载到一个网页中。当所有这些初始加载完成后,如何激活一些javascript函数?如果我使用.ajaxStop(),那么每次提交一个表单组件时都会调用该函数,这是我不希望发生的。

1 个答案:

答案 0 :(得分:0)

所以我为我的用例找到了一种合理的方法,因为每个LOAD()事件都将sql表的行id作为参数。我在文件的早期定义了一个空的全局javascript对象loaded,然后在遍历每一行时填写loaded = false属性:

    <script>var loaded = {};</script>
    {{for row in rows:}}
        <script>loaded['{{=row.id}}']=false</script>
        {{=LOAD('default','mycomponent.load', args=[row.id], ajax=True)}}
    {{pass}}

在解析每个mycomponent.load组件时,我将其标记为在javascript数组中加载,并检查所有加载的== true。例如。在mycomponent.load文件的末尾

<script>
    loaded['{{=row.id}}']=true; 
    if (Object.keys(loaded).every(function(k) {return loaded[k]}))
        function_to_execute_once_all_LOADs_done()
</script>