如何在web2py中的LOAD()成功时知道它

时间:2014-10-16 18:20:32

标签: load web2py


我在控制器中使用LOAD()如下: def showResult(): msg='' result=LOAD('ResController','res.load',ajax=True) if 'pass' in result: msg='Congratulations, you've passed' response.flash= msg

我发现的是: 当调用load()时(以及在它从res.load成功接收响应之前),它通过" loading ..."结果变量反过来影响if条件。

我的问题是: 有没有办法让load()成功收到响应后if条件有效?

1 个答案:

答案 0 :(得分:1)

您误解了LOAD的工作原理。它只是一个HTML帮助程序,它生成一个HTML div,其中包含在包含页面加载时在浏览器中触发Javascript的特殊属性(Javascript对指定的操作进行Ajax调用,然后返回对浏览器的响应)。它不会在您的控制器代码中执行HTTP请求并在那里返回响应,因此您无法对生成LOAD帮助程序的控制器中的Ajax响应执行任何操作。

注意,LOAD返回DIV帮助程序,HTML帮助程序就其组件的列表行事。由于DIV是通过文本"正在加载..."启动的,因此它就像是['Loading...']之类的列表一样。因此,当您执行if 'pass' in result时,条件将始终为False

要获得进一步的帮助,您可能必须明确说明工作流程应该是什么以及ResController / res中发生了什么。也许该操作是需要将Flash消息返回给浏览器的操作。