web2py:在不导航到其他页面的情况下执行函数的链接(回调?)



使用web2py(2.8.2-表+时间戳。2013.11.28.13.54.07),如何在执行函数但不离开当前页面的视图中构建链接?

web2py OnLine手册指出,对于在视图中使用的内置帮助程序a()的调用:"您可以使用回调参数传递URL,而不是_href。按下链接的效果将是对"myaction"的ajax调用,而不是重定向。(我对"重定向"的理解是将浏览器导航到另一个页面)。然而,web2py视图源(在循环中):

{{=A('why does this callback redirect?', callback=URL('PlayAnAlbum2', vars = dict(album_folder = album_folder, type = 'artists')))}}

执行所需的函数,但也重定向到命名函数的视图,或者如果函数没有返回任何内容,则重定向到由"None"组成的页面。

我希望点击链接只执行一个函数,而不加载不同的视图(因此不需要视图,我希望函数不需要返回任何信息,除非函数是否遇到任何错误)。生成的来源示例如下:

<a data-w2p_disable_with="default" data-w2p_method="POST" href="/AlbumBrowser/default/PlayAnAlbum2?album_folder=Jaga+Jazzist%2F2003+The+Stix&amp;type=artists" id="10aa76bd-c4bf-4701-a0da-1ebfed7847cc">why does this callback redirect?</a>

但我本来预计会出现以下情况(我是根据这个问题中的代码松散地编造的,所以可能没有意义):

<a href="#null" onclick="ajax('/AlbumBrowser/default/PlayAnAlbum2',['album_folder','type'],None);return false">why does this callback redirect?</a>

我可以确认{{include 'web2py_ajax.html'}}在布局头中,<script src="/AlbumBrowser/static/js/web2py.js" type="text/javascript"></script>在生成的页面源中。

正如问题和web2py书中所述,在A()中使用callback=URL()而不是_href=URL()

这在web2py 2.8.2中肯定有效。

最新更新