node.js - Angular-server-side rendering-feil HTMLCanvasElement.exports.nyi


Feil: IkkeEndaImplementert ved HTMLCanvasElement.exports.nyi (C:\frontend_server_side_rendering\NewUIUX2nd\bbbcustomerui\dist\server.js:30071:9) ved C:\frontend_server_side_rendering\NewUIUX2nd\bbbcustomerui\dist\server.js:391458:34898 ved C:\frontend_server_side_rendering\NewUIUX2nd\bbbcustomerui\dist\server.js:391458:35221 ved C:\frontend_server_side_rendering\NewUIUX2nd\bbbcustomerui\dist\server.js:391458:45461 ved Object. (C:\frontend_server_side_rendering\NewUIUX2nd\bbbcustomerui\dist\server.js:391458:47139) ved webpack_require (C:\frontend_server_side_rendering\NewUIUX2nd\bbbcustomerui\dist\server. js:20:30) ved Object.web-animations-js (C:\frontend_server_side_rendering\NewUIUX2nd\bbbcustomerui\dist\server.js:371112:18) ved webpack_require (C:\frontend_server_side_rendering\NewUIUX2nd\bbbcustomerui\dist\server.js:364897:30) ved Object../src/app/home/home.component.ts (C:\frontend_server_side_rendering\NewUIUX2nd\bbbcustomerui\dist\server.js:366546:1) ved webpack_require (C:\frontend_server_side_rendering\NewUIUX2nd\bbbcustomerui\dist\server.js:364897:30)

jeg får denne feilen Angular 5 server-side rendering

Svar #1

Dette er fordi <canvas> elementet ikke støttes av SSR DOM-implementeringen ennå. Se: angular/universal-starter#538 (kommentar)

Hvis du vil bruke det med Angular Universal, legg til i HTML-en din:

<canvas *ngIf="isBrowser">

I komponenten din i en .ts-fil slik:

import { Inject, PLATFORM_ID } from '@angular/core';
import { isPlatformBrowser } from '@angular/common';

public isBrowser: boolean;

constructor(@Inject(PLATFORM_ID) platformId: Object, private renderer2: Renderer2) {
  this.isBrowser = isPlatformBrowser(platformId);
}

Les mer om dette på Angular Universal "Gotchas"

Relaterte artikler