@pmcode

Можно ли использовать inline JS в Angular?

В продолжение этого вопроса. Вот допиленный пример: jsfiddle.net/nynqqfz1/6. С дочерними $scope все работает отлично. Проблема в том, что нужно чтобы содержимое меню сервер отдавал в HTML, а не в статическом JS файле. Потому что так работает i18n и Spring Security tags - содержимое меню варьируется в зависимости от настроек языка и привилегий пользователя.
Меню долно отдаваться сразу в index.html а не запрашиваться через отдельный сервис Angular, как вариант.
Вопрос: как подсунуть $scope.data = [] в контроллер через Inline JS ?

P.S. В гугле не забанили, но ничего толкового там не советуют.
  • Вопрос задан
  • 2259 просмотров
Пригласить эксперта
Ответы на вопрос 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
А как вам такой вариант:

<script>
angular.module('app').value('sideMenuData', {{ myData | json }});
</script>


Ну или что бы было удобнее

<script>
angular.module('app.inlineData', []).value('sideMenuData', {{ myData | json }});
</script>


а в вашем приложении сделать зависимость от этого модуля. Такой способ максимально удобен с той точки зрения, что модуля приложения к моменту выполнения этого кода еще не будет.
Ответ написан
Serhioromano
@Serhioromano
Web Developer
Потому что так работает i18n и Spring Security tags - содержимое меню варьируется в зависимости от настроек языка и привилегий пользователя.


Я не вижу в этом препядствий. Если это все равно делает сервер то нет разници или он сгенерит готовый HTML только с теми элементами которые можно, или сгенерит JSON только с теми элементами что нужно. Так же и перевод. JSON и HTML это 2 текстовых формата. Не важно какой формат сервер отдаст, он может так же вставить перевод в значения JSON.

Я не думаю что если у вас так работает приложение то нужно использовать Ангуляр. Для этого можно было использовать просто _ или jQuery. То что я вижу что вы пытаетесь использовать инструмент не по знаначению.

А отсутствие в ангуляр загрузки шаблонов сгенерированых на сервере1, широго обсуждалось. И это то почему React сейчас набирает популярность так как он может на первой загрузке использовать HTML сделаный сервером а потом подхватить как SPA.

Мне например трудно подсказать как плоской отверткой открутить шуруп крестовинный. Ну конечно можно пропилить разрез, или подцепить за край как монтировкой, но ....

1 - Я знаю что это можно реализовать. Речь о природной поддержке шаблонов предсгенерированых не сервере для быстрого старта, а потом продолжение уже как обычно.
Ответ написан
Комментировать
ruddy22
@ruddy22
Спасение утопающих — дело рук самих утопающих
Вопрос, в данном случае, может иметь как минимум 2 решения.
1. Использовать ангуляр - все просто
2. Не использовать ангуляр - все тоже очень просто

Ангуляр можно использовать частично и не строить через него все темплейты, что-то может приезжать с сервака
Это штатная ситуация
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы