如何使用确认电梯进行AJAX通话?

时间:2013-05-12 14:30:58

标签: ajax lift

我是新手,想要在我的项目中实施以下内容:

页面中有一个“删除”链接,当用户点击它时,会有一个确认文本“你确定要删除吗?”。如果用户单击“是”,它将进行AJAX调用以删除服务器端的内容,然后显示“操作完成”通知,3秒后,将重新加载页面。

如何在电梯中实施此功能?我搜索了很多,但找不到正确的例子。

我现在只能这样做:

SHtml.a( ()=>Confirm("are you sure to delete", ???), "delete" )

2 个答案:

答案 0 :(得分:4)

最简单的方法是将SHtml.ajaxInvokeJsCmds.Confirm结合使用。它将创建一个服务器端函数并返回一个带有functionId和JsCmd的元组。所以,这样的事情应该做你想做的事情:

SHtml.a( () => {
  JsCmds.Confirm("Are you sure you want to delete?", {
    SHtml.ajaxInvoke(() => {
      //Logic here to delete

      S.notice("Operation complete")
      JsCmds.After(3 seconds, JsCmds.Reload) //or whatever javascript response you want, e.g. JsCmds.Noop 
    })._2
  })
}, "delete")

在上面 - 点击链接将触发确认。如果选择“确定”,则会向您的函数发出ajax调用并显示通知。您可以在需要SHtml的任何JsCmd项中使用它。

如果您想在超时后重定向页面,您可以编写一个客户端javascript函数来执行您需要的操作,并使用JsCmds.Run来调用它。

答案 1 :(得分:0)

使用reactive-web

            confirm("Are you sure you want to do that?") {
              case true =>
                // handle yes, if so desired
              case false =>
                // handle no, if so desired
            }

请参阅scaladocs:http://reactive-web.tk/reactive-web-api/#reactive.web.package