Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.02.2015, 01:06
Аспирант
Отправить личное сообщение для evgeniy123 Посмотреть профиль Найти все сообщения от evgeniy123
 
Регистрация: 19.02.2011
Сообщений: 37

помогите с начальной архитектурой
Здравствуйте. У меня вопрос такого плана. я использую MVC Framework php для реализаии вывода картинок. Он отдает плагину json с путями картинок. Нужно сделать чтобы например когда заходишь на главную страницу то была бы отдача html и json данныи одним запросом подгружены или образованы (нужно придумать).

Например у меня такой кусок

<? $this->renderPartial('//layouts/inside/navigation'); ?>
     
 <!--<div id="loading"></div>

 <div id="gallery"></div> -->


     <div ng-controller="TodoController">

         <div ng-view></div>


	<?//= $content; ?>


 </div>


Сам плагин грузит картинки в блок <div id="gallery"></div> . А хотелось бы чтобы и navigation блок и json были подгружены Один после другого одним запросом. Или мне только html в json писат а потом разбирать ?
Ответить с цитированием
  #2 (permalink)  
Старый 23.02.2015, 01:14
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ну если вам охота заниматься разбором "что это?" соединяйте. Что мешает на главной странице на стороне сервера добавить в html-код блок script с готовым массивом?
Ответить с цитированием
  #3 (permalink)  
Старый 23.02.2015, 01:56
Аспирант
Отправить личное сообщение для evgeniy123 Посмотреть профиль Найти все сообщения от evgeniy123
 
Регистрация: 19.02.2011
Сообщений: 37

массив меняется в зависимости от переданных параметров запроса. На стороне сервера я могу только отдать шаблон таким образом что передастся header перед отправкой json и запрос просто не пройдет. Получается что не генерируя первый вид в php я хочу загрузить (ajax или по другому ) данные которые состояли бы из json данных и предшествующих их html (
<div id="loading"></div>

 <div id="gallery"></div>

) с запуском js скрипта самой галлей

Я могу сделать так что бы выводились данные на место <?= $content ?> сгенерированные в контроллере php
<? $this->renderPartial('//layouts/inside/navigation', array('show_nav'=> true));?>

<div id="loading"></div>

<div id="gallery"></div>


<script type="text/javascript">

$(function(){
....
. но тогда как мне избавляться от всего блока где картинки мои, если я захочу перейти на другую страницу по маршрутам agular ? Того же он просто подгрузит данные на место <ng-view> </ng-view> из php.

может быть есть какой нибудь способ по загрузке странички когда все сформируется инициализировать вызов ангулар и подгрузить все во view angular то что придет через его аякс запрос ?

Последний раз редактировалось evgeniy123, 23.02.2015 в 02:46.
Ответить с цитированием
  #4 (permalink)  
Старый 23.02.2015, 02:55
Аватар для MetaDriver
Аспирант
Отправить личное сообщение для MetaDriver Посмотреть профиль Найти все сообщения от MetaDriver
 
Регистрация: 24.04.2014
Сообщений: 66

Сообщение от evgeniy123 Посмотреть сообщение
............... Получается что не генерируя первый вид в php я хочу загрузить (ajax или по другому ) данные которые состояли бы из json данных и предшествующих их html ........... . но тогда как мне избавляться от всего блока где картинки мои, если я захочу перейти на другую страницу по маршрутам agular ? Того же он просто подгрузит данные на место <ng-view> </ng-view> из php.. ...... ... может быть есть какой нибудь способ по загрузке странички когда все сформируется инициализировать вызов ангулар и подгрузить все во view angular то что придет через его аякс запрос ?
Ужос... ... и такой весь до боли знакомый...
... Если отступить на пару шагов назад.....
Евгений, когда я начинал проект с Институтом Археологии (я вам ссылку посылал в соседней теме), то стоял перед дилеммой:
(1) делать генерацию html-шаблонов на PHP, или (2) всю шаблонизацию поручить ангуляру, а на PHP сделать только REST-api ??
Поскольку мне дали какое-то время на планирование проекта, я решил попробовать (на локалке) и так и сяк. Работало всё худо бедно в обоих вариантах и я продолжал этот эксперимент некоторое время.... ...около трёх недель... пока проблемы подобные описанной вами не стали основательно надоедать ... до сих пор на локалке PHP-версия генерации шаблонов пылится в том сентябрьском варианте - оставил тогда на случай если вдруг появится резон вернуться к той версии. Так вот: сейчас вспоминаю свои поиски таких резонов как глуповатый и страшноватый маразм, Ангуляр - шаблонизатор гораздо более умный, гибкий и продвинутый (и гораздо более удобный), нежели PHP. А второй выигрыш (в который PHP-шники никак не хотят верить, несмотря на измеримые факты) : ощутимый выигрыш по времени - поскольку шаблоны и JSON-код из базы данных грузится практически ПАРАЛЛЕЛЬНО (с двух разных доменов). Что вполне объяснимо и весьма очевидно. Запросы на тот и другой сайт уходят асинхронно, какой кусок раньше прилетит, тот и загружается.
Короче... всё что я хотел сказать: у меня таких проблем нету, и вам не советую их иметь - они тупые и неинтересные ... и если ещё не поздно переиграть схему - не раздумывая бросайте PHP-MVC-схему, делайте весь интерфейс и бизнес-логику на HTML-CSS-JS(Angular). А на пыхе оставьте просто поставку JSON'a из базы данных - с этим он справится отлично.
// Извините, если нечаянно наехал на какое-нибудь убеждение или
// поломал какую-то важную политическую игру, тогда можете просто проигнорировать этот пост,
// я не хотел, если что..

Последний раз редактировалось MetaDriver, 23.02.2015 в 18:55.
Ответить с цитированием
  #5 (permalink)  
Старый 24.02.2015, 00:39
Аспирант
Отправить личное сообщение для evgeniy123 Посмотреть профиль Найти все сообщения от evgeniy123
 
Регистрация: 19.02.2011
Сообщений: 37

Я не очень силен во фронт но чувствую что нужно становится. Проект только в стадии проектирования . Так что буду следовать заповедям вашим ! может заодно подскажите как сделать такое . На каждой странице у нас блок див в котором или кнопка доступ к странички profile-user или Login В Зависимости пользователь вошел или нет. как бы вы это реализовали если ангулар кэширует данные с шаблоном ?
Ответить с цитированием
  #6 (permalink)  
Старый 24.02.2015, 17:50
Аватар для MetaDriver
Аспирант
Отправить личное сообщение для MetaDriver Посмотреть профиль Найти все сообщения от MetaDriver
 
Регистрация: 24.04.2014
Сообщений: 66

Сообщение от evgeniy123 Посмотреть сообщение
На каждой странице у нас блок див в котором или кнопка доступ к странички profile-user или Login В Зависимости пользователь вошел или нет. как бы вы это реализовали если ангулар кэширует данные с шаблоном ?
Вот это ближе к телу.
Это на ангуляре делается сотней способов. Ключевые фишки для управления DOM'ом "по условию":
ngShow
ngIf
ngSwitch
ngInclude // ngInclude берёт на вход ангуляр-выражение, так что можно перегружать шаблон по собственному условию, если шаблон кеширован - то и берётся из кеша.
и т.д.
Начни разбираться - быстро сам найдёшь ещё возможности.
Для примера приведу кусочек своей менюшки, меняющийся в зависимости от пары условий:
<ul class="nav navbar-nav pull-right">    
*!*
      <li ng-show="loginView()" class="divider-vertical"></li>
      <li ng-show="loginView()" class="divider-vertical"></li>
      <li ng-show="loginView()" ui-sref-active="selected"><a ui-sref="Login">{{menuLoginText()}}</a></li>
*/!*
      <li class="divider-vertical"></li>
      <li class="divider-vertical"></li>
      <li class="divider-vertical"></li>
</ul>
Тут два вида изменений. Во первых, кнопка вообще может быть невидима. Для случайного гостя вход на сайт вообще отсутствует. Чтобы отобразилась кнопка "Вход", нужно нажать другую "особо секретную" кнопку, и где её искать, знают только "посвящённые" зарегистрированные пользователи, которым разрешается редактирование базы. Реализовано посредством ng-show="loginView()", функция loginView() возвращает булево значение. Второй аспект - текст на кнопке, меняющийся в зависимости от того, залогинился ли пользователь и каковы его права. Реализовано через <a ui-sref="Login">{{menuLoginText()}}</a>.
Всё работает как часы и мгновенно реагирует на изменения переменных в контроллерах.

Последний раз редактировалось MetaDriver, 24.02.2015 в 23:01.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите разобраться с this uroboros7 jQuery 4 02.01.2015 00:56
Помогите с архитектурой простой логики dtzscln Angular.js 5 30.10.2014 09:16
Помогите с архитектурой приложения epson Общие вопросы Javascript 6 09.02.2012 16:32
Помогите! Многоуровневые вкладки! sergeeeeee Элементы интерфейса 2 02.08.2010 23:50