2015-12-08 3 views
0

У меня есть шаблон AngularJS, где я вставляю панели. С PHP я генерирую код. При первом посещении страницы в моем шаблоне AngularJS все отлично работает. Но во второй раз, когда я посещаю страницу, я вижу старый PHP-код.Обновить страницу php внутри AngularJS

AngularJS не восстанавливает PHP-код, который должен меняться каждый раз, когда вы его посещаете. Как я могу это решить?

Мне нужен мой PHP-код для создания уникального билета для правильной установки панели управления.

Я пробовал этот пост: AngularJs: Reload page, но он не работает.

Спасибо.

+0

Что значит «посещать страницу». Я полагаю, что речь идет об изменении взглядов, не перезагружающихся? –

+0

Звучит как проблема с кешированием. У AngularJS нет контроля над вашими PHP-скриптами. – jperezov

+0

Возможно, вы используете кеширование своего шаблона. Если у вас есть полный шаблон, регенерированный PHP, тогда лучше вставить шаблон в местозаполнитель после запроса $ http для получения шаблона. Если это просто уникальная строка идентификатора, вы можете получить это, используя запрос $ http, чтобы получить уникальный билет. https://docs.angularjs.org/api/ng/service/$templateCache или отключить кеш шаблонов http://opensourcesoftwareandme.blogspot.in/2014/02/safely-prevent-template-caching-in-angularjs.html – Gary

ответ

1

AngularJS работает по-другому, как вы думаете, что он работает. Встряхните голову и приготовьтесь немного поразмыслить.

В приложении AngularJS отображаемый HTML или DOM, сочетание тегов и бизнес-данных создается клиентской стороной (браузером). Не следует создавать серверную часть с PHP, поскольку вы пытаетесь сделать.

AngularJS создает отображаемую HTML-клиентскую сторону на основе кода/инструкций и данных AngularJS. Ваш код/​​инструкции включают Javascript и шаблон AngularJS. Шаблоны не должны содержать бизнес-данные, а только инструкции по размещению данных для создания отображаемого HTML (или DOM). Эти инструкции представляют собой ng-bind, {{var}}, ng-repeat и т. Д.

Так же, как он неоднократно извлекает ваш код Javascript/инструкции с сервера, AngularJS не повторно извлекает ваш код кода/инструкции из сервер. Он получает его один раз, кэширует его локально и повторно использует его всякий раз, когда ему нужно повторно отобразить эту страницу.

Ваши шаблоны AngularJS действительно должны быть статическими * .html-файлами, так же как ваши .js (и .css) являются статическими файлами. Только при некоторых действительно странных требованиях, когда вам нужно динамически генерировать шаблоны AngularJS с PHP.

(Теперь, чтобы получить бизнес-данные, необходимые для шаблона, вы используете службу $ http службы AngularJS. Это делает вызов вашей серверной части PHP. Ваш PHP-код возвращает только данные, завернутые в JSON, ... и НЕ завернуты в HTML.)

+0

Это правда. Хорошая точка BNCoder. Возможно, вам захочется перейти от кода, сгенерированного php, к коду RESTAPI. – Gary

+0

Спасибо за объяснение, это действительно очищает мой разум. я использую – Merl

Смежные вопросы