Угловая конфигурация 7 или альтернативы? - PullRequest
0 голосов
/ 13 февраля 2019

Я боролся с тем, как внедрить Angular 7 в мой проект .NET Core 2.X, сохранив лучшее из обеих платформ, но безуспешно.Основная проблема, с которой я сталкиваюсь, заключается в том, что Angular хочет контролировать мой интерфейс и то, как он его получает.Под этим я подразумеваю, что это заставляет вас использовать статические шаблоны для всего, я понимаю концепцию, но для моего проекта это приведет к созданию безумного количества шаблонов / компонентов или шаблонов с кучей неиспользуемых элементов отображения.Гораздо больше смысла иметь больше общего компонента внешнего интерфейса, который получает шаблоны от сервера, а затем обрабатывает все привязки, DI, обновления и т. Д.

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

Этот вопрос, кажется, был задан большинству

Я наткнулся на решение , которое казалось вариантом, но потом я понял, что его нужно запуститьс JIT-компилятором.Это снова добавляет ненужную нагрузку на клиента, когда все может быть скомпилировано заранее.

Был также один вопрос об использовании Angular Elements, но у него есть свои проблемы, по-видимому , и он на самом деле не исправляетпроблемы, не требующие перемонтажа или других обходных путей, чтобы все работало.

Динамический загрузчик компонентов звучит очень многообещающе, с сайта Angular он сообщает

Componentшаблоны не всегда исправлены.Приложению может потребоваться загрузить новые компоненты во время выполнения.

Это означает, что шаблоны могут быть установлены динамически, но в то же время это означает, что загрузка нового компонента во время выполнения исправит это.Но загруженный компонент имеет статический шаблон.Нигде шаблон не генерируется или не изменяется, или я просто что-то упускаю?

Я смотрел на Angular SSR , и это почти справляется с этим, но я не могу понять, как идтичерез контроллер или иным образом использовать любое из преимуществ .NET Core / ASP.NET или динамического содержимого, генерируемого сервером.Кажется, что он просто переносит компиляцию с клиента на сервер, но все еще использует те же статические шаблоны.Есть ли способ использовать Node.js для рендеринга маршрута MVC с последующей отправкой модуля?

Раньше был способ установить TemplateUrl компонента на маршрут на сервере, но теперь это запрещено, делая множество ответов, которые я нашел устаревшими, но именно так я и хотел бы их настроить.

Единственный реальный вариант, который мне удалось выяснить, - это использование MVC для генерации динамических модулей / компонентов.загрузить их в приложение Angular.Можно ли скомпилировать представление .cshtml через контроллер, чтобы создать строку HTML, которая затем используется для компиляции углового модуля / компонента, а затем отправить его клиенту и загрузить в угловое приложение?

Я понимаю, как скомпилировать свое представление в html-строку, но я не уверен, как скомпилировать угловой модуль или даже если это правильная идея или есть лучший способ справиться с этим?

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

1 Ответ

0 голосов
/ 14 февраля 2019

Я недавно начал с Angular (после работы с .net, jquery, javascript, реагировать), и мое первое взаимодействие было непосредственно с angular 7. Первое, что я заметил, было то, как быстро я могу развиваться в angular, но есть многофайлов, в которых я даже не уверен, но они сгенерированы, сравните с реакцией, но кривая обучения была определенно выше, чем в Angular.

Если вам нужно что-то действительно легкое, вам определенно следует обратиться к библиотекам.фреймворк.Реакция является хорошим вариантом, однако он не управляется MVC, и вы увидите, что он сильно отличается от Angular (иногда я это понимаю).

Кроме этого, если бы большая часть моего кода была статической, я мог бы выбрать какой-то каркас шаблонов HTML (например, nunjucks), который можно предварительно скомпилировать.

Для компонентов, созданных в .net, я не думаю, что их можно предварительно скомпилировать в угловом формате, поскольку вы создадите что-то в .net, только если вам нужен компонент, имеющий динамические данные.

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