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"
