Макет Cakephp $ не изменится - PullRequest
0 голосов
/ 16 декабря 2011

Итак, вот ситуация: У меня есть свой default.ctp и мой ajax.ctp, где мой ajax.ctp - это просто пустое $ content_for_layout;

Когда я делаю вызов ajax с автозаполнением, я, очевидно, должен поменять расположение на «ajax». Так что у меня есть эта функция в моем контроллере

function beforeFilter() {
        if($this->RequestHandler->isAjax()) {
            $this->layout = 'ajax';
        }
    }

Однако, когда я смотрю на результаты моего автозаполнения, я получаю это в моих опциях:

Что в основном является моей компоновкой по умолчанию. Так что я думаю, что макет не изменился

Кто-нибудь еще сталкивался с этой проблемой? Я забыл добавить что-то в свой контроллер? Все помощники и компоненты на месте.

1 Ответ

0 голосов
/ 16 декабря 2011

Не так много, что может пойти не так в вашем сценарии.До фильтра это хорошо, и настройка просмотра шаблона тоже.Единственное, о чем я могу думать, это то, что ваш ajax-запрос как-то не распознается.

Код RequestHandler :: isAjax () довольно прост:

function isAjax() {
  return env('HTTP_X_REQUESTED_WITH') === "XMLHttpRequest";
}

Поэтому я предлагаюрегистрируя ваши переменные, чтобы увидеть, распознается ли он как ajax.Также я слышал иногда кеширующие винты это.Попробуйте $ this-> disableCache ();перед проверкой, если это AJAX.

Отладка ... разве это не весело

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...