【发布时间】:2013-06-27 03:47:10
【问题描述】:
是否可以将列表参数从浏览器传递到 Snap 中的处理函数? 如何从列表中构造多参数 URL 并将其发送到处理函数?
例如,我需要删除一些表格行或任何其他对象。 我不能用通常的 REST 路由来做到这一点:
("/objects/:id", method DELETE deleteObject)
只是因为可能太多,一一删除 100 行可能会有点乏味。
我通过复选框输入选择了注定的对象,比如需要删除 [3,4,6,8] 行。 那么如何将该列表传递给 URL 中的处理程序以及该操作的路由是什么样的?
更新
好吧,我终于用 jquery 和 ajax 调用做到了。 Snap 的“getParams”函数可以处理多个参数 URL,但我仍然无法弄清楚如何在没有 jquery 和 ajax 的情况下实际构造 URL。
我使用 javascript 来收集要删除的项目并构建项目数组。 然后我使用 ajax 构造多个参数 URL 并将其发送到处理程序。 使用此方法和 Snap 需要注意的几点:
-- Snaps 的“getParams”功能只支持旧式多参数 URL:
"a=1&a=2&a=3&a=4"
而不是新的:
"a[]=1&a[]=2&a[]=3&a[]=4"
这使得传递复杂的参数变得不可能。
-- 路由应该是:
("/objects/", method DELETE deleteObject)
而不是:
("/objects/:ids", method DELETE deleteObject)
我没有回答我的问题,因为我不认为这是使用 snap 传递多个参数 URL 的唯一方法。
虽然“getParams”可以处理它,但我的问题仍然存在:如何构造 URL 并将其发送给处理程序?
例如,Rails 在视图逻辑中使用“link_to”函数来构造 URL。 Snap 在模板中不使用任何逻辑,那么它是如何工作的呢? 在 snap 中传递多个参数 URL 的唯一方法不可能是借助 javascript...?
请有人帮我确认一下?
【问题讨论】:
标签: haskell haskell-snap-framework