Size: a a a

Angular-universal-ru

2020 March 13

SS

Sergei Sergeevich in Angular-universal-ru
Yurii Gavdan
сейчас обверну еще в if (isPlatformServer) {
но мне кажется что проблема с http клиентом,
покуда я использую HttpClient - оно наверное работать не будет, а этот TransferHttpService - пока не прикручивается...
У меня все работает при использовании HttpClient
источник

YG

Yurii Gavdan in Angular-universal-ru
Sergei Sergeevich
У меня все работает при использовании HttpClient
Спасибо, тогда проверяем теорию с обворачиванием в isPlatformServer. :)
источник

KV

Karpov Vladimir in Angular-universal-ru
У меня тоже былы проблема, что og теги не некоректно работали, когда кидаю ссылку в соц сеть
источник

IF

Igor Filippov in Angular-universal-ru
Igor Filippov
А как теперь сетить куки? Раньше можно было обнулить _restrictedHeaders , но сейчас я что-то смотрю этот хак не работает
Актуально
источник

IF

Igor Filippov in Angular-universal-ru
В общем моя проблема состоит в том, что  XMLHttpRequest.prototype._restrictedHeaders попадает в server/main.js два раза, а не один. Потому обнуление этого объекта ничего и не дает. xhr2 указан как зависимость у @angular/platform-server видимо из-за этого. Как с этим бороться кроме как постобработки бандл я хз
источник

AK

Ali Kholmatov in Angular-universal-ru
Igor Filippov
В общем моя проблема состоит в том, что  XMLHttpRequest.prototype._restrictedHeaders попадает в server/main.js два раза, а не один. Потому обнуление этого объекта ничего и не дает. xhr2 указан как зависимость у @angular/platform-server видимо из-за этого. Как с этим бороться кроме как постобработки бандл я хз
с таким столкнулся
источник

AK

Ali Kholmatov in Angular-universal-ru
после переустановки пакетов пропало
источник

AA

Anton Anishchenko in Angular-universal-ru
Michael Izmaylov
это возможно, можно пойти в dist/server/main.js на строчку с ошибкой (лучше предварительно отключить минификацию в angular.json для сборки ssr, это все равно серверный код и его менифицировать не обязательно), и там будут в коментариях указаны пакеты из которых этот код
Спасибо, помогло найти проблему, выключил оптимизацию и нашелся виновник))
источник

RS

Roma Subriichuk in Angular-universal-ru
Добрый вечер. Может кто сталкивался с проблемой, если в интерсепторе делать редирект при перехвате ошибки (404 к примеру), юниверсал рендерит компонент криво
источник
2020 March 14

SK

Sergey Kucherenko in Angular-universal-ru
Roma Subriichuk
Добрый вечер. Может кто сталкивался с проблемой, если в интерсепторе делать редирект при перехвате ошибки (404 к примеру), юниверсал рендерит компонент криво
Хм... Криво - это очень содержательное описание.
Как на счет добавить немного деталей?
источник

RS

Roma Subriichuk in Angular-universal-ru
Sergey Kucherenko
Хм... Криво - это очень содержательное описание.
Как на счет добавить немного деталей?
Router.navigate не отрабатывает и в часть которая должна быть статикой вкидывает еще компонент на который был перенаправлен
источник

RS

Roma Subriichuk in Angular-universal-ru
Sergey Kucherenko
Хм... Криво - это очень содержательное описание.
Как на счет добавить немного деталей?
Возможно нужно при ответе с ошибкой 404 делать перенаправление не ангуларом, а експресом. Как Вы думаете?  Спасибо
источник
2020 March 15

KV

Karpov Vladimir in Angular-universal-ru
Парни, привет. При использовании для переводов Ангуларовский i18n подводных камней нет?
источник

V

Vadim in Angular-universal-ru
Karpov Vladimir
Парни, привет. При использовании для переводов Ангуларовский i18n подводных камней нет?
Есть. Если вкратце, то при SSR на ноде нужно грузить файл перевода через fs.
Детальную реализацию можно посмотреть в angular-universal-starter
источник

KV

Karpov Vladimir in Angular-universal-ru
А почему в ru стартере именно ngx-translate ?
источник

KV

Karpov Vladimir in Angular-universal-ru
Проще для демонстрации?
источник

V

Vadim in Angular-universal-ru
Karpov Vladimir
А почему в ru стартере именно ngx-translate ?
Потому как с i18n придётся генерить отдельный бандл для каждого языка, что зачастую не очень удобно
источник

KV

Karpov Vladimir in Angular-universal-ru
Vadim
Потому как с i18n придётся генерить отдельный бандл для каждого языка, что зачастую не очень удобно
если откинуть отдельный бандл для каждого языка, то для большого проекта предпочтительнее ангуларовская реализация?
источник

V

Vadim in Angular-universal-ru
Как вам удобнее. Родная реализация работает быстрее (в плане времени отрисовки). ngx-translate, объективно, удобнее
источник
2020 March 16

nt

nur tlek in Angular-universal-ru
Yurii Gavdan
@tylek

Пришлось еще раз обновить...

private injectGTM() {
   const {
     id,
     isEnabled,
     blackList,
   } = this.config['GTM'];
   if (!isEnabled) {
     return;
   }

   if (isPlatformServer(this.platformId)) {
     // ### GTM > head > script
     const script = this.renderer2.createElement('script');
     script.type = 'text/javascript';
     script.text = `
     (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
       new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
       j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
       'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
     })(window,document,'script','dataLayer','${id}');
     `;
     this.renderer2.appendChild(this.document.head, script);

     // ### GTM > body > iframe
     const iframe = this.renderer2.createElement('iframe');
     iframe.src = https://www.googletagmanager.com/ns.html?id=${id};
     iframe.height = 0;
     iframe.width = 0;
     iframe.style = 'display:none;visibility:hidden';
     // ###
     this.renderer2.appendChild(this.document.body, iframe);
   }
 }

____

PS: здесь есть проблема, с iframe еще, его нужно обворачивать в <noscript> - пока без этого сделал, иначе вставит пустой noscript без iframe

PS2: Sorry за спам, если что. :)

https://developers.google.com/tag-manager/quickstart?hl=ru
а тут нельзя было просто вставить в index.html
источник