问题
在前后端分离的情况下ajax请求接口之后,可能需要弹出层提示用户错误信息(例如密码错误)。非前后端分离情况下,通常使用跳转新页面以显示错误信息。现有需求:非前后端分离情况下,实现弹出层提示信息且不遮挡原页面内容。
原理
利用thinkphp $this->assign();
将js脚本写入视图页面(类似xss),然后再js脚本里面使用layui.layer。
代码
控制器
protected function showMsg($msg){
$jqueryFile = "<script src='".__ROOT__."/Public/jquery.js'></script>"; //引入js
$layerFile = "<script src='".__ROOT__."/Public/layer/layer.js'></script>"; //引入 layer
$layerScript = "<script>layer.msg('".$msg."');</script>";
$this->assign('jqueryFile',$jqueryFile);
$this->assign('layerFile',$layerFile);
$this->assign('layerScript',$layerScript);
}