我正在使用CakePHP应用程序和jQuery Mobile。在CakePHP应用程序中,RequestHandler已打开,现在,jQuery Mobile将所有请求作为ajax请求发出,但不仅需要整页,而且需要完整的页面布局。

我需要requesthandler,并且尝试设置布局,强制渲染,关闭自动布局,没有任何效果,cake只返回我视图的内容。

我真的很想知道这是怎么回事。

最佳答案

如果有人感兴趣,我找到了解决方案,我发现当您打开RequestHandler并发出Ajax请求时,无论您做什么都没有关系,然后RequestHandler通过回调确定您的布局为“ ajax”,这可能适用于所有非HTML请求类型,例如json和text。

我必须设定

$this->RequestHandler->enabled = false;


确实也需要在调用链中的beforeFilter()中设置它,它似乎不起作用。

所以我的代码最终变成:

class AppController extends Controller {
  var $components = array('RequestHandler');
  function beforeFilter() {
    if ($this->RequestHandler->isMobile()) {
      $this->RequestHandler->enabled = false
      //set special mobile rules here
    }
  }
}

10-02 13:42