所以情况就是这样:我有我的default.ctp和我的ajax.ctp,其中我的ajax.ctp只是空白的$ content_for_layout;
当我正在进行自动完成ajax调用时,我必须将布局更改为'ajax' . 所以我在我的控制器中有这个功能
function beforeFilter() {
if($this->RequestHandler->isAjax()) {
$this->layout = 'ajax';
}
}
但是,当我查看自动填充的结果时,我会在我的选项中得到这个:
-
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
-
html xmlns = "http://www.w3.org/1999/xhtml">
这基本上是我的默认布局 . 所以我的猜测是布局没有改变
其他人遇到过这个问题?我忘记在控制器中添加一些东西了吗?所有帮助者和组件都已到位 .
1 回答
你的脚本中没有那么多可能出错的地方 . 在过滤器良好之前,设置视图模板也是如此 . 我能想到的唯一一件事就是你的ajax请求在某种程度上无法得到认可 .
RequestHandler :: isAjax()的代码非常简单:
因此,我建议您记录您的变量,看它是否被识别为ajax . 我也听说有时缓存会搞砸了 . 试试$ this-> disableCache();在检查它是否是ajax之前 .
调试......不是很有趣