khusamov
@khusamov
ReactJS, NodeJS, TypeScript, Sencha ExtJS

Как нормально отрисовавть компоненты МатериалДизайн под universal.angular?

Я поставил к себе https://universal.angular.io/
при помощи CLI https://www.npmjs.com/package/universal-cli

Все работает. Отлично. Реализовал пример Тур Героев из мануала https://angular.io/docs/ts/latest/tutorial/toh-pt1.html

Тоже работает.

Далее установил https://material.angular.io/
И слегка подправил Тур Героев, внедрив туда и
https://material.angular.io/components/component/input

Понятное дело, клиентская часть заработала. А вот рендеринг на сервере не работает. Например нет доступа к методу hasAttribute DOM-элемента. Потому что в Универсале нет эмуляции этого метода. И возможно вообще всех.

Было предложено решение подменить на сервере компонент на свою заглушку, которая избавлена от обращения к функционалу браузера.

Но это решение неудобно тем, что придется много писать заглушек.

Я нашел решение, включив schemas: [ CUSTOM_ELEMENTS_SCHEMA ] в @NgModule. Рендеринг при этом происходит. Не рендерятся лишь проблемные компоненты. Уже лучше. Хоть что-то рендерится, хоть что-то будет проиндексировано. И клиентский рендеринг при этом не ломается.

Есть ли нормальное решение этой проблемы? Чтобы рендеринг был полным?
  • Вопрос задан
  • 165 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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