Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Помощь с архитектурным решением (https://javascript.ru/forum/angular/46347-pomoshh-s-arkhitekturnym-resheniem.html)

damintsew 06.04.2014 21:00

Помощь с архитектурным решением
 
Доброго времени суток!
Я совсем не много времени работаю с ангуларом (раньше использовал GWT).
Не совсем понимаю как можно эффективно использовать данный фреймворк для моей задачи и поменьше шаблонного кода писать.

Сайт представляет из себя что-то в этом духе
/index/numberOne/property
/index/numberTwo
/index/numberThree

При этом все сущности number это практически шаблоны с текстом т.е.:
<div class="subHeader">numberOne numberOne numberOne numberOne</div>
<div class="content"><a href>.........
  <a href="numberOne/property/23">.........
  <a href>.........
</div>

Внутри это шаблона я буду писать много текста, а также ссылки на более глубокие уровни вложенности.

Соответствено у меня есть две идеи как это реализовать:

1) Я создаю для каждой ссылки свой View. Но меня напрягает, что получается довольно много повторяющегося кода.
Мой routeProvider:
$routeProvider.when('/numberOne',
      {
          templateUrl: 'views/numberOne.html',
          controller: 'MyCtrl1'
      });
        $routeProvider.when('/numberTwo',
      {
          templateUrl: 'views/numberTwo.html',
          controller: 'MyCtrl2'
      });
        $routeProvider.when('/numberThree/',
      {
          templateUrl: 'views/numberThree.html',
          controller: 'MyCtrl3'
      });
        $routeProvider.when('/numberOne/test',
      {
          templateUrl: 'views/numberOne.html/property',
          controller: 'MyPropertyCtrl'
      });


2) Я создаю один View, а внутри него я подтягиваю с сервера данные.
$routeProvider.when('numberOne',
      {
          templateUrl: 'views/:number',
          controller: 'MyCtrl1'
      });

<div class="subHeader">
   {{header.data}}
</div>
<div class="content">
   {{content.data}}
</div>

В данном случае мне надо будет часто гонять данные с сервера на клиент. И не уверен как это можно было бы эффективно закешировать (на сервере будет Java).

Есть ли какие-нибудь best - practice для данной ситуации.

Первый вариант меня отпугивает тем, что при копировании view я могу где-нибудь ошибиться и не туда поставить перекрестную ссылку.

Tek 07.04.2014 14:52

Посмотрите https://github.com/mgechev/angularjs...EADME-ru-ru.md.

для того чтобы меньше гонять данные можно завести $scope который будет выше контроллеров и складывать данные туда. Ну и использовать $cacheFactory.

damintsew 07.04.2014 22:45

Цитата:

Сообщение от Tek (Сообщение 306565)

Спасибо за ссылку... почитал.
Я так понимаю Вы мне советуете второй вариант с шаблонами ?


Нашел такой сайт там есть starter - project http://joshdmiller.github.io/ng-boilerplate/#/home. Показался довольно интересным... сейчас изучаю как моно у меня это привнести.

Если у кого-нибудь еще будут предложения и/или ссылки прошу поделиться!


Часовой пояс GMT +3, время: 09:50.