Показать сообщение отдельно
  #1 (permalink)  
Старый 10.02.2017, 16:45
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

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/
И слегка подправил Тур Героев, внедрив туда <button> и <md-input-container>
https://material.angular.io/components/component/input

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

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

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

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

Есть ли нормальное решение этой проблемы? Чтобы рендеринг был полным?
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием